ข้ามไปยังเนื้อหา

สิ่งที่เบราว์เซอร์ของผู้อ่านเก็บไว้

ถ้าใช้ค่าเริ่มต้น หน้าเว็บสาธารณะจะไม่ตั้ง 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 จนกว่าผู้อ่านจะกดเล่น แต่ปลั๊กอินที่คุณเปิดใช้อาจทำให้เรื่องนี้เปลี่ยนไป เนื้อหาที่มาจากบริการอื่นก็เช่นกัน

หน้านี้อธิบายว่าซอฟต์แวร์ทำอะไร ไม่ใช่คำแนะนำทางกฎหมาย กฎของแต่ละที่ไม่เหมือนกัน ให้ตรวจกฎที่ใช้กับที่ที่คุณและผู้อ่านของคุณอยู่