framewerk.org Cookie & Browser Storage Policy
framewerk.org ใช้นโยบายนี้เพื่ออธิบาย Cookie และ Browser Storage ในมุมที่สามารถ ตรวจสอบจากระบบจริงได้
เป้าหมายไม่ใช่เพียงบอกว่า “เว็บไซต์ใช้ Cookie” แต่ต้องสามารถแยกได้ว่า Cookie หรือ Storage ใดมาจากไหน มีวัตถุประสงค์อะไร อยู่ได้นานเท่าไร และทำงานก่อนหรือหลัง Consent
เราไม่ควรระบุชื่อ Cookie, Analytics Platform, Advertising Pixel, Security Tool หรือ Consent Platform จากการคาดเดา หากยังไม่ได้ตรวจ Script, Network Request และ Storage ของเว็บไซต์จริง
สิ่งที่ควรตรวจเมื่อพูดถึง Cookie หนึ่งตัว
Cookie ที่นำมาเผยแพร่ใน Inventory ควรมีข้อมูลอย่างน้อย
Name — ชื่อที่ Browser แสดง
Domain — Domain ที่ผูกกับ Cookie
Provider — ระบบหรือองค์กรที่เกี่ยวข้อง
Purpose — ใช้ทำอะไร
Category — Necessary, Preference, Analytics หรือประเภทอื่น
Expiry — หมดอายุเมื่อใด
Party — First-party หรือ Third-party
Consent — ต้องได้รับการเลือกจากผู้ใช้หรือไม่
หากข้อมูลใดยังยืนยันไม่ได้ ควรระบุว่าอยู่ระหว่างตรวจ ไม่ควรเติมจากการคาดเดา
Browser ได้ Cookie มาอย่างไร
การสร้าง Cookie อาจเกิดจาก
- HTTP Response Header
- Server-side Application
- JavaScript
- Third-party Script
- Embedded Content
- Security Service
- Consent Tool
ดังนั้น การตรวจ Cookie ควรดูทั้ง Storage และ Network ไม่ใช่ดูหน้าเว็บไซต์ด้วยสายตาเพียงอย่างเดียว
Set-Cookie
Server อาจใช้ Set-Cookie ใน Response เพื่อให้ Browser บันทึกข้อมูล
องค์ประกอบที่อาจพบ ได้แก่
- Name
- Value
- Domain
- Path
- Max-Age
- Expires
- Secure
- HttpOnly
- SameSite
การตรวจ Attribute มีประโยชน์ต่อการเข้าใจพฤติกรรมและความเสี่ยงของ Cookie
Browser ส่ง Cookie เมื่อใด
Cookie อาจถูกแนบไปกับ Request หากเงื่อนไขตรงกับการตั้งค่า เช่น
- Domain
- Path
- อายุ
- Secure
- SameSite
Cookie ที่ผู้ใช้เห็นใน Storage ไม่ได้หมายความว่าจะถูกส่งกับ Request ทุกครั้ง
Secure
Secure ช่วยจำกัดการส่ง Cookie ให้เกิดผ่านการเชื่อมต่อ HTTPS ตามเงื่อนไขของ Browser
แต่ Secure ไม่ได้ทำให้ Cookie ปลอดภัยจากทุกความเสี่ยง
HttpOnly
HttpOnly ช่วยจำกัดการเข้าถึง Cookie จาก JavaScript ในบริบทที่เกี่ยวข้อง
มีประโยชน์ต่อการลดความเสี่ยงบางรูปแบบ แต่ไม่ควรใช้เป็นเหตุผลรับรองว่าระบบไม่มีช่องโหว่
SameSite
SameSite ช่วยควบคุมการส่ง Cookie ในบริบทระหว่างเว็บไซต์
ค่าที่อาจพบขึ้นอยู่กับระบบและ Browser
framewerk.org จะไม่ระบุค่าของ Cookie ใดจนกว่าจะตรวจจากระบบจริง
Cookie ไม่ใช่ Storage รูปแบบเดียว
เมื่อประเมินเว็บไซต์ ควรตรวจเพิ่มจาก Cookie ด้วย
Local Storage
ข้อมูลคงอยู่ใน Browser จนถูกลบตามการทำงานของเว็บไซต์หรือผู้ใช้
Session Storage
มักเชื่อมกับบริบทของ Tab หรือ Session
IndexedDB
ฐานข้อมูลใน Browser ที่ Web Application บางประเภทใช้
Cache Storage
อาจใช้ร่วมกับ Service Worker หรือ Web Application
Memory Storage
ข้อมูลบางประเภทอาจอยู่ในหน่วยความจำชั่วคราวโดยไม่ถูกเขียนลง Storage แบบถาวร
ข้อมูลลับไม่ควรถูกเก็บอย่างไม่เหมาะสม
ข้อมูลอย่าง Password หรือ OTP ไม่ควรถูกเก็บใน Browser Storage อย่างเปิดเผย
Token หรือ Session Identifier ที่เกี่ยวข้องกับการเข้าสู่ระบบควรได้รับการจัดการตามความเสี่ยงและสถาปัตยกรรมของระบบ
Cookie Policy ไม่ควรกล่าวว่าระบบจัดเก็บอย่างปลอดภัยหากยังไม่มีข้อมูลด้านเทคนิคยืนยัน
Session Cookie
Session Cookie มักถูกใช้กับสถานะการใช้งานในช่วงหนึ่ง
อย่างไรก็ตาม คำว่า Session Cookie ไม่ได้แปลว่าจะถูกลบทันทีเมื่อปิด Tab เสมอไป
ควรตรวจ
- Expires
- Max-Age
- Browser Behavior
- Server Session
- Logout Behavior
ก่อนอธิบายอายุของ Cookie
Persistent Cookie
Persistent Cookie มีอายุที่กำหนดไว้และอาจอยู่หลัง Browser ถูกปิด
ควรตรวจว่าอายุสัมพันธ์กับ Purpose หรือไม่
ตัวอย่างเช่น Cookie สำหรับ Consent อาจต้องมีอายุต่างจาก Cookie สำหรับ Session
First-party Cookie
เชื่อมกับ Domain ที่ผู้ใช้เปิดตามบริบทของ Browser
แต่ First-party ไม่ได้หมายความว่าไม่มีข้อมูลพฤติกรรมหรือไม่มีผลด้าน Privacy
ต้องดู Purpose และ Value จริง
Third-party Cookie
อาจเกิดจาก Domain ภายนอกที่โหลดเข้ามาบนหน้า
แหล่งที่อาจสร้างได้ เช่น
- Analytics
- Ads
- Chat
- Video
- Social Embed
- Security
- CAPTCHA
- External Widgets
Third-party Cookie ควรถูกตรวจพร้อม Network Request และ Script ที่สร้างมัน
Third-party Script สำคัญอย่างไร
Script ภายนอกอาจสร้าง Cookie หรือ Storage โดยที่ผู้ดูแลเว็บไซต์ไม่ได้เขียน Cookie นั้นเอง
เมื่อเพิ่ม Script ใหม่ จึงควรตรวจ
- Domain ที่ถูกเรียก
- Request ที่เกิด
- Cookie ใหม่
- Local Storage
- Payload
- Consent Timing
การอัปเดตเว็บไซต์โดยไม่ตรวจ Script ใหม่อาจทำให้ Cookie Policy ล้าสมัยได้
Analytics
หากพบ Analytics ต้องตรวจให้ชัดว่า
- Provider คือใคร
- Script โหลดเมื่อใด
- Cookie อะไรถูกสร้าง
- Event อะไรถูกส่ง
- IP ถูกประมวลผลอย่างไร
- Consent เกี่ยวข้องหรือไม่
- Retention เท่าไร
framewerk.org จะไม่ใส่ชื่อ Analytics Tool หากยังไม่ยืนยันจากระบบจริง
Marketing Technology
หากมี Advertising Pixel หรือ Marketing Tool ต้องพิจารณาแยกจาก Analytics
ควรตรวจ
- Tracking Domain
- Identifier
- Event
- Cross-site Behavior
- Consent
- Provider Policy
ไม่ควรรวม Marketing Cookie ไว้ในหมวด Necessary เพื่อหลีกเลี่ยงการอธิบาย Consent
Cookie Consent
Consent ไม่ใช่เพียงข้อความบน Banner
ต้องตรวจว่าการทำงานจริงสัมพันธ์กับตัวเลือกของผู้ใช้
ก่อน Consent
Cookie หรือ Script ที่ไม่จำเป็นไม่ควรทำงานหากระบบและฐานการใช้งานกำหนดให้ต้องรอความยินยอม
หลัง Accept
Script ที่ได้รับอนุญาตอาจโหลดตามประเภทที่ผู้ใช้เลือก
หลัง Reject
ควรตรวจว่าระบบที่ถูกปฏิเสธยังส่ง Request หรือสร้าง Storage อยู่หรือไม่
หลังเปลี่ยนใจ
หากมี Preference Center ผู้ใช้ควรสามารถกลับไปแก้ตัวเลือกได้
วิธีทดสอบ Consent
การตรวจเชิงเทคนิคอาจทำได้โดย
- เปิด Browser Session ใหม่
- ล้าง Site Data
- เปิด Network
- เปิด Application/Storage
- โหลดหน้าโดยยังไม่ตอบ Banner
- ตรวจ Cookie และ Request
- กด Reject
- ตรวจอีกครั้ง
- กด Accept ใน Session ใหม่
- เปรียบเทียบผล
ข้อมูลที่พบควรถูกนำไปปรับ Cookie Inventory และ Policy
Cookie Inventory
เมื่อระบบได้รับการตรวจแล้ว อาจจัดทำ Inventory ที่ประกอบด้วย
- Cookie Name
- Provider
- Domain
- Category
- Purpose
- Expiry
- Party
- Security Attribute
- Consent Requirement
Inventory ควรได้รับการตรวจใหม่เมื่อเว็บไซต์เปลี่ยน
Cookie กับ Cache ต่างกันอย่างไร
Cache ช่วยเก็บ Resource เช่น CSS, JS, Image และ Font
Cookie ใช้ข้อมูลสถานะหรือ Identifier
Browser อาจมีระบบ Cache หลายประเภท และการล้าง Cache ไม่ได้ล้าง Cookie เสมอไป
Cookie กับ History
History คือรายการหน้าที่เคยเข้า
การลบ History ไม่รับประกันว่า
- Cookie
- Local Storage
- IndexedDB
- Session
- Cache
จะถูกลบทั้งหมด
ผู้ใช้ควรเลือก Site Data ตามสิ่งที่ต้องการลบจริง
Browser Controls
ผู้ใช้สามารถใช้การตั้งค่าของ Browser เพื่อ
- Block Cookies
- Block Third-party Cookies
- Clear Site Data
- Delete Per-domain Data
- Clear on Exit
- Manage Exceptions
การปิด Cookie บางประเภทอาจกระทบการทำงานของหน้า
ผลเมื่อบล็อก Necessary Cookie
อาจเกิดปัญหา เช่น
- Login ไม่ต่อเนื่อง
- Session หาย
- แบบฟอร์มผิดพลาด
- Consent จำค่าไม่ได้
- ระบบความปลอดภัยทำงานบางส่วนไม่ได้
ผลเมื่อบล็อก Analytics Cookie
หาก Analytics แยกจาก Necessary อย่างถูกต้อง ฟังก์ชันหลักของเว็บไซต์ควรยังสามารถทำงานได้
แต่ข้อมูลการวิเคราะห์อาจลดลง
Private Browsing
Private Mode ลดข้อมูลบางประเภทที่เก็บใน Browser Profile หลังปิด Session
ไม่ได้ซ่อนผู้ใช้จาก
- Website
- Network
- ISP
- Employer
- External Services
จึงไม่ใช่เครื่องมือ Anonymous โดยสมบูรณ์
Session Security
หาก Cookie หรือ Token ใช้ยืนยัน Session ผู้ใช้ไม่ควรแชร์
- Cookie Value
- Session ID
- Bearer Token
- Access Token
- Authentication Header
- Local Storage Token
ฝ่ายสนับสนุนทั่วไปไม่ควรขอให้คัดลอกค่าเหล่านี้ผ่านแชต
ตรวจ Extension ด้วย
Browser Extension บางประเภทอาจได้รับสิทธิอ่านข้อมูลหน้าเว็บหรือเปลี่ยน Request
ผู้ใช้ควรตรวจ
- Permissions
- Publisher
- Source
- Update
- ความจำเป็นในการใช้งาน
Extension ที่ไม่จำเป็นควรถูกลบหากสร้างความเสี่ยง
Cookie และ Privacy
Cookie อาจเชื่อมโยงกับ
- Session
- Device
- Consent
- Page View
- Event
- Referrer
- Identifier
- Approximate Location
จึงควรอ่าน Cookie Policy ร่วมกับ Privacy Policy
Retention
Retention ของ Cookie ขึ้นกับ Expiry และระบบ
Retention ของข้อมูลฝั่ง Server อาจไม่เท่ากับอายุ Cookie
การลบ Cookie จาก Browser จึงไม่ได้แปลว่าข้อมูล Log หรือ Server-side Record ถูกลบด้วย
การแจ้งข้อมูลผิด
หากตรวจพบ Cookie หรือ Storage ที่ไม่ตรงกับนโยบาย สามารถส่ง
- Name
- Domain
- Page
- Browser
- Date
- Screenshot
- Storage Type
ไปยัง ช่องทางติดต่อ framewerk.org
อย่าส่ง Value ของ Cookie หรือ Token
ผู้ดูแลนโยบาย
เนื้อหานี้ดูแลโดย สุภาพร ไชยกาล
หน้าที่ครอบคลุมการปรับข้อความให้สัมพันธ์กับ Cookie Inventory, Privacy Policy และผลจากการตรวจระบบ
ผู้เขียนไม่ได้หมายถึงผู้ดูแล Server หรือ Script ทั้งหมดโดยตรง
สรุปหลักของ framewerk.org
Cookie Policy ที่ดีไม่ควรเริ่มจากการเดาว่าเว็บไซต์ “น่าจะใช้” เครื่องมือใด แต่ควรเริ่มจากการตรวจ
Browser Storage + Network + Script + Domain + Consent
จากนั้นจึงอธิบายให้ผู้อ่านทราบว่า Cookie ใดจำเป็น Cookie ใดเลือกได้ ใครเป็น Provider และผู้ใช้ควบคุมได้อย่างไร
จนกว่าจะตรวจข้อมูลเฉพาะได้ framewerk.org จะไม่แต่งชื่อ Cookie, Expiry, Analytics Tool หรือ Security Attribute ขึ้นเอง