สิ่งที่เบราว์เซอร์ของผู้อ่านเก็บไว้
ถ้าใช้ค่าเริ่มต้น หน้าเว็บสาธารณะจะไม่ตั้ง cookie ให้ผู้อ่าน และไม่เขียนอะไรลงในเบราว์เซอร์ของผู้อ่านเลยจนกว่าผู้อ่านจะเลือกอะไรบางอย่างเอง การนับผู้อ่านให้หน้า “สถิติ” ก็ไม่เก็บอะไรไว้ในเครื่องของผู้อ่าน คุณใช้ข้อมูลในหน้านี้เขียนนโยบายความเป็นส่วนตัวของเว็บได้
การนับผู้อ่าน
หัวข้อที่มีชื่อว่า “การนับผู้อ่าน”ทุกหน้าสาธารณะมีสคริปต์สั้น ๆ ที่นับหน้านั้นให้หน้า “สถิติ” สคริปต์นี้ไม่ตั้ง cookie และไม่เขียนอะไรลงใน localStorage หรือ sessionStorage
สคริปต์ส่ง view เมื่อผู้อ่านเข้ามาที่หน้า ถ้ารีโหลด หรือกดย้อนกลับ (Back) หรือไปข้างหน้า (Forward) มาที่หน้านั้น จะไม่ส่งอะไร เบราว์เซอร์จดไว้เองอยู่แล้วว่าแต่ละหน้าเปิดขึ้นมาด้วยวิธีไหน สคริปต์จึงอ่านจากตรงนั้นแทนที่จะเขียนเครื่องหมายของตัวเองไว้ สำหรับบทความหรือเพจ สคริปต์จะส่ง read เมื่อท้ายบทความหรือเพจเลื่อนมาอยู่ในจอ และแท็บแสดงอยู่บนจอรวมกันครบ 15 วินาที โดยส่งได้ไม่เกินหนึ่งครั้งต่อการโหลดหน้าหนึ่งครั้ง
ถ้าเบราว์เซอร์เปิด Do Not Track หรือ Global Privacy Control ไว้ หรือเป็นเบราว์เซอร์ของคุณเอง สคริปต์จะไม่ส่งอะไรเลย
การนับแต่ละครั้งเป็นคำขอเล็ก ๆ ไปที่ /api/v1/stats/hit บอกว่าเป็นหน้าไหน ภาษาอะไร เป็น view หรือ read ความกว้างของหน้าต่าง และ origin ที่ผู้อ่านมาจาก แต่ไม่เคยบอกว่าผู้อ่านเป็นใคร หน้านับผู้อ่านจากเว็บแบบ headless แสดงคำขอนี้ฉบับเต็ม
เซิร์ฟเวอร์เก็บอะไรไว้
หัวข้อที่มีชื่อว่า “เซิร์ฟเวอร์เก็บอะไรไว้”การนับหนึ่งครั้งเพิ่มยอดรวมของวันนั้นขึ้นหนึ่ง เซิร์ฟเวอร์เก็บวันละหนึ่งแถวต่อข้อมูลข้างล่างนี้แต่ละชุด และแต่ละแถวมีจำนวน view กับจำนวน read
- บทความหรือเพจ หรือหน้าแรก
- ภาษาของหน้านั้น
- host ที่ผู้อ่านมาจาก เป็นตัวพิมพ์เล็กโดยตัด
www.ออก หรือเป็นinternalถ้ามาจากเว็บของคุณเอง - อุปกรณ์ เป็น
mobileถ้าหน้าต่างกว้างไม่ถึง 768 พิกเซล นอกนั้นเป็นdesktop - ประเทศ เป็นรหัสสองตัวอักษร
ไม่มีแถวไหนบอกว่าใครอ่านอะไร ในแถวไม่มี address ไม่มีตัวระบุตัวตน และไม่มีเวลาที่ละเอียดกว่าวัน
ประเทศมาจาก header บอกประเทศของ CDN ถ้ามี คือ CF-IPCountry หรือ header ที่ตั้งไว้ใน TOME_CMS_COUNTRY_HEADER ถ้าไม่มี เซิร์ฟเวอร์จะค้น address ของผู้อ่านในฐานข้อมูลประเทศของ DB-IP Lite และถ้าไม่มีไฟล์นั้น ประเทศจะเป็นไม่ทราบ หน้าการตั้งค่า อธิบาย TOME_CMS_COUNTRY_HEADER และ TOME_CMS_GEOIP_PATH ไว้
address ของผู้อ่านใช้อยู่ในหน่วยความจำเท่านั้นและไม่ถูกเก็บลงที่ไหน เซิร์ฟเวอร์ใช้ address ค้นหาประเทศเมื่อ CDN ไม่ได้บอกมา และใช้นับจำนวน hit จาก address นั้น เพื่อให้ address เดียวเพิ่มยอดได้ไม่เกิน 120 ครั้งในสิบนาที ตัวนับนี้อยู่ในหน่วยความจำของแอปพลิเคชันและหายไปเมื่อแอปรีสตาร์ต address ไม่ถูกเขียนลงฐานข้อมูล และเมื่อ hit ถูกทิ้ง log ก็บันทึกแค่สาเหตุ เซิร์ฟเวอร์อ่าน header User-Agent เพื่อคัด bot ออก และไม่เก็บค่านี้ไว้เช่นกัน
reverse proxy ของคุณ รวมถึง CDN ถ้าใช้อยู่ อาจเก็บ access log ของตัวเองซึ่งมี address อยู่ด้วย ส่วนนี้ตั้งค่าอยู่นอก TomeCMS จึงควรตรวจดูว่าของคุณเก็บอะไรไว้บ้าง
สิ่งที่เขียนลงในเบราว์เซอร์ของผู้อ่าน
หัวข้อที่มีชื่อว่า “สิ่งที่เขียนลงในเบราว์เซอร์ของผู้อ่าน”มีแค่สิ่งที่ผู้อ่านเลือกเอง แต่ละอย่างเก็บไว้ใน localStorage บนเครื่องของผู้อ่าน อยู่ไปจนกว่าผู้อ่านจะล้างข้อมูลของเว็บ และไม่เคยถูกส่งไปที่เซิร์ฟเวอร์
| เมื่อผู้อ่าน | ชื่อ | ค่า |
|---|---|---|
| เลือก “สว่าง” “มืด” หรือ “ตามระบบ” ในตัวเลือก “ธีม” | tome-theme |
light, dark หรือ system |
| ปิด “Popup” | popup- ตามด้วยรหัสสั้น ๆ ที่คำนวณจากเนื้อหาของ popup |
1 |
| ปิด “Sticky Banner” | notice- ตามด้วยตัวเลขที่คำนวณจากข้อความของแถบ |
1 |
ตัวเลือก “ธีม” แสดงบนเว็บตราบที่ “ให้ผู้เข้าชมเลือกสว่าง/มืดเองได้” ในหน้า “ธีม” ของแอดมินยังเปิดอยู่ ซึ่งเปิดไว้ตั้งแต่แรก ส่วน “Popup” และ “Sticky Banner” เป็นปลั๊กอินที่ปิดอยู่จนกว่าคุณจะเปิดใช้ และแถบที่ไม่ได้เปิด “ให้ผู้อ่านปิดแถบเองได้” ไว้จะไม่เขียนอะไรเลย popup ใหม่หรือข้อความใหม่จะได้ชื่อใหม่ ผู้อ่านที่เคยปิดอันเก่าไปแล้วจึงยังเห็นอันใหม่
ทั้งหมดนี้จำสิ่งที่ผู้อ่านเลือกไว้เท่านั้น กฎเรื่องความยินยอม (consent) มักถือว่าการเก็บแบบนี้เป็นส่วนหนึ่งของบริการที่ผู้อ่านขอใช้เอง
เบราว์เซอร์ของคุณเอง
หัวข้อที่มีชื่อว่า “เบราว์เซอร์ของคุณเอง”ทุกหน้าแอดมินที่คุณเปิดจะเขียน tomecms:stats-owner ลงใน localStorage ของเบราว์เซอร์นั้น และสคริปต์นับผู้อ่านจะไม่ส่งอะไรตราบที่ค่านี้ยังอยู่ การเข้าเว็บของคุณเองจึงไม่ถูกนับแม้จะออกจากระบบไปแล้ว จนกว่าคุณจะล้างข้อมูลของเว็บในเบราว์เซอร์นั้น เว็บ headless ที่อยู่คนละ origin อ่าน flag นี้ไม่ได้ หน้านับผู้อ่านจากเว็บแบบ headless บอก flag ที่ต้องตั้งบนเว็บนั้นแทน
การเข้าสู่ระบบแอดมินใช้ cookie สองตัว ตัวหนึ่งเก็บ session ของคุณ อีกตัวอยู่แค่ช่วงสั้น ๆ ระหว่างตรวจ passkey แอดมินมีบัญชีเดียวคือบัญชีของคุณ ผู้อ่านจึงไม่มีทางได้ cookie ทั้งสองตัวนี้
บริการอื่น
หัวข้อที่มีชื่อว่า “บริการอื่น”ตามค่าเริ่มต้น หน้าเว็บสาธารณะไม่โหลดอะไรจากที่อื่นเลย ฟอนต์มาจากเว็บของคุณเอง และภาพที่คุณอัปโหลดก็มาจาก object storage ของคุณเอง
- Cloudflare Turnstile ถ้าคุณเปิดใช้ จะโหลดสคริปต์ของ Cloudflare ในฟอร์มเข้าสู่ระบบของแอดมินเท่านั้น ผู้อ่านไม่เคยเจอ
- “Jev (TypeSafe AI)” ส่งเนื้อหาของบทความไปที่ TypeSafe AI เฉพาะตอนที่คุณกดปุ่มของปลั๊กอินนี้ในหน้าแก้ไข เช่น “แนะนำจากเนื้อหา” สิ่งที่ผู้อ่านทำไม่มีอะไรไปถึงบริการนี้เลย
บนเว็บแบบ bundled บทความหรือเพจมีวิดีโอจาก YouTube หรือ Vimeo ได้ และหน้าเว็บจะไม่โหลดอะไรจากทั้งสองที่เลยจนกว่าผู้อ่านจะกดเล่น ก่อนหน้านั้น วิดีโอเป็นแค่ภาพปกกับลิงก์ไปที่คลิป ภาพปกเป็นไฟล์ของเว็บคุณเอง เซิร์ฟเวอร์ดึงมาครั้งเดียวตอนใส่วิดีโอ แล้วเก็บไว้ใน “คลังไฟล์” เมื่อผู้อ่านกดเล่น ตัวเล่นวิดีโอจะขึ้นแทนที่ภาพปก โดยโหลดจากโฮสต์แบบไม่ใช้ cookie ของ YouTube คือ www.youtube-nocookie.com หรือจาก Vimeo ในโหมดไม่ติดตาม (do-not-track) คือ player.vimeo.com พร้อม dnt=1 นับจากตอนนั้น ผู้อ่านก็ติดต่อกับ YouTube หรือ Vimeo โดยตรง ซึ่งเห็น address ของผู้อ่านและใช้ตัวเล่นของตัวเอง ส่วน TomeCMS เองไม่ตั้ง cookie และไม่เขียนอะไรลงในเบราว์เซอร์สำหรับวิดีโอ
TomeCMS ไม่ได้ตั้ง Content Security Policy ไว้ ถ้าคุณตั้งเองที่ reverse proxy ต้องอนุญาต frame-src https://www.youtube-nocookie.com https://player.vimeo.com ไม่อย่างนั้นตัวเล่นวิดีโอจะโหลดไม่ขึ้น
HTML ของบทความยังไม่เก็บ iframe และ script ไว้ ตัวเล่นหรือโพสต์ของบริการอื่นจึงใส่ลงในบทความบนเว็บแบบ bundled ไม่ได้ แต่ภาพยังมาจากที่อื่นได้ ภาพที่วางมาจากเว็บอื่นอาจยังชี้ไปที่อยู่เดิมบนเว็บนั้น แล้วเบราว์เซอร์ของผู้อ่านทุกคนจะโหลดภาพจากเว็บนั้น ซึ่งเห็น address ของผู้อ่านและตั้ง cookie ของตัวเองได้ ให้อัปโหลดภาพเข้า “คลังไฟล์” แทน
บนเว็บแบบ headless หน้าเว็บของคุณเองเป็นตัวกำหนดว่าจะโหลดอะไร วิดีโอหรือโพสต์ที่ฝัง (embed) มาจากบริการอื่นจะพา cookie ของบริการนั้นมาด้วย ถ้าบริการนั้นมี embed แบบรักษาความเป็นส่วนตัว ให้ใช้แบบนั้น สำหรับ YouTube คือ youtube-nocookie.com
เว็บต้องมีแบนเนอร์ขอความยินยอมไหม
หัวข้อที่มีชื่อว่า “เว็บต้องมีแบนเนอร์ขอความยินยอมไหม”ถ้าใช้ค่าเริ่มต้น หน้าเว็บสาธารณะไม่ต้องมีแบนเนอร์ขอความยินยอมสำหรับสิ่งที่ TomeCMS ทำเอง การนับผู้อ่านไม่เก็บอะไรไว้ในเครื่องของผู้อ่าน และสิ่งเดียวที่เขียนลงไปคือสิ่งที่ผู้อ่านเลือกเอง วิดีโอก็ไม่โหลดอะไรจาก YouTube หรือ Vimeo จนกว่าผู้อ่านจะกดเล่น แต่ปลั๊กอินที่คุณเปิดใช้อาจทำให้เรื่องนี้เปลี่ยนไป เนื้อหาที่มาจากบริการอื่นก็เช่นกัน
หน้านี้อธิบายว่าซอฟต์แวร์ทำอะไร ไม่ใช่คำแนะนำทางกฎหมาย กฎของแต่ละที่ไม่เหมือนกัน ให้ตรวจกฎที่ใช้กับที่ที่คุณและผู้อ่านของคุณอยู่

