คุกกี้คืออะไร? เว็บไซต์จำคุณได้อย่างไร
คุกกี้คือข้อความชิ้นเล็กๆ ที่เว็บไซต์ขอให้เบราว์เซอร์ของคุณเก็บไว้ และส่งกลับมาทุกครั้งที่คุณเข้าเว็บนั้นในภายหลัง นี่คือวิธีที่เว็บ "จำ" คุณได้ เช่น ว่าคุณล็อกอินอยู่ มีอะไรในตะกร้า หรือคุณเลือกภาษาไหน คุกกี้เป็นเพียงข้อมูล ไม่ใช่โปรแกรม แต่เพราะมันระบุตัวคุณได้ จึงสำคัญทั้งด้านความปลอดภัยและความเป็นส่วนตัว
ทำไมมันสำคัญเมื่อคุณสร้างด้วย AI
คุกกี้อยู่เบื้องหลังฟีเจอร์หลายอย่างที่คุณจะขอจากเครื่องมือสร้างด้วย AI มักโดยไม่มีคำว่า "คุกกี้" ปรากฏขึ้นเลย:
- การล็อกอิน ในเว็บแอปส่วนใหญ่ "อยู่ในระบบต่อไป" หมายถึงคุกกี้เซสชัน วิธีตั้งค่าคุกกี้นั้นกำหนดว่ามันถูกขโมยได้ง่ายแค่ไหน
- ตะกร้าและการตั้งค่า ตะกร้าที่ยังอยู่หลังรีเฟรชหน้ามักพึ่งคุกกี้หรือการจัดเก็บในเบราว์เซอร์
- การวิเคราะห์และโฆษณา การเพิ่ม Google Analytics, Meta pixel หรือวิดเจ็ตแชตมักเพิ่มคุกกี้จากบริษัทอื่น
- การแจ้งทางกฎหมาย ในหลายที่ คุกกี้บางประเภทต้องได้รับความยินยอมจากผู้เข้าชมก่อน ซึ่งเป็นที่มาของแบนเนอร์คุกกี้
ถ้าคุณรู้ว่าแอปของคุณตั้งคุกกี้อะไรบ้างและเพื่ออะไร คุณจะเลือกการตั้งค่าความปลอดภัย ความยินยอม และนโยบายความเป็นส่วนตัวได้ดีขึ้น
ตัวอย่างในชีวิตประจำวัน
ลองนึกถึงบัตรรับฝากเสื้อโค้ต คุณส่งเสื้อโค้ตให้และได้บัตรที่มีหมายเลข บัตรไม่มีเสื้อโค้ตของคุณอยู่ข้างใน มีแค่หมายเลข ทุกครั้งที่กลับมาที่เคาน์เตอร์ คุณแสดงบัตร และพนักงานรู้ว่าเสื้อโค้ตตัวไหนเป็นของคุณ
คุกกี้เซสชันทำงานแบบเดียวกัน เมื่อคุณล็อกอิน เซิร์ฟเวอร์เก็บรายละเอียดของคุณไว้ฝั่งของมัน และให้บราวเซอร์ของคุณ "บัตร" คือ ID สุ่มยาวๆ เบราว์เซอร์แสดงบัตรนั้นในทุกคำขอ และเซิร์ฟเวอร์ค้นหาว่าคุณเป็นใคร ใครก็ตามที่คัดลอกบัตรไปได้ก็สามารถไปรับเสื้อโค้ตได้ นั่นคือเหตุผลที่คุกกี้ล็อกอินต้องได้รับการป้องกัน
คุกกี้ทำงานอย่างไรจริงๆ
- คุณเข้าเว็บ การตอบกลับของเซิร์ฟเวอร์มี header อย่าง
Set-Cookie: session_id=8f3k...; HttpOnly; Secure; SameSite=Lax - เบราว์เซอร์เก็บไว้ ผูกกับโดเมนของเว็บนั้น
- ในทุกคำขอถัดไปไปยังเว็บเดียวกัน เบราว์เซอร์จะเพิ่ม
Cookie: session_id=8f3k...โดยอัตโนมัติ - เซิร์ฟเวอร์อ่านค่านั้นและรู้ว่าเป็นคุณ
JavaScript ของหน้าก็สร้างคุกกี้ได้เช่นกัน แต่คุกกี้ที่สำคัญที่สุด เช่น เซสชันการล็อกอิน ควรถูกตั้งโดยเซิร์ฟเวอร์และซ่อนจาก JavaScript
ประเภทของคุกกี้
| ประเภท | ความหมาย | ตัวอย่าง |
|---|---|---|
| คุกกี้เซสชัน | ไม่มีวันหมดอายุ จะถูกลบเมื่อเซสชันเบราว์เซอร์สิ้นสุด | ขั้นตอนชำระเงินแบบสั้น |
| คุกกี้ถาวร | มีวันหมดอายุ (Expires หรือ Max-Age) และอยู่รอดจากการรีสตาร์ท | "จำฉันไว้ 30 วัน" |
| First-party | ถูกตั้งโดยเว็บที่อยู่บนแถบที่อยู่ | การล็อกอินของคุณบนเว็บนั้น |
| Third-party | ถูกตั้งโดยโดเมนอื่นที่ฝังอยู่ในหน้า | ID การติดตามของเครือข่ายโฆษณา |
| จำเป็นอย่างยิ่ง | จำเป็นสำหรับบริการที่ผู้ใช้ขอ | เซสชันการล็อกอิน ตะกร้าสินค้า |
| ไม่จำเป็น | เป็นประโยชน์สำหรับเจ้าของเว็บ | การวิเคราะห์ โฆษณา การทดสอบ A/B |
เบราว์เซอร์ค่อยๆ จำกัดคุกกี้ Third-party เพราะมันถูกใช้ติดตามผู้คนข้ามเว็บไซต์ เบราว์เซอร์หลักหลายตัวตอนนี้บล็อกคุกกี้เหล่านี้จำนวนมากเป็นค่าเริ่มต้น และรายละเอียดยังเปลี่ยนแปลงอยู่ ดังนั้นอย่าสร้างสิ่งที่สำคัญบนคุกกี้ Third-party
ตัวอย่างการทำงาน: ร้านค้าออนไลน์ขนาดเล็ก
สมมติว่าคุณสร้างร้านขายเทียนทำมือ นี่คือคุกกี้ที่เวอร์ชันที่สมเหตุสมผลจะตั้ง และเหตุผล
session ถูกตั้งเมื่อเจ้าของหรือลูกค้าล็อกอิน มีเพียง ID สุ่ม เซิร์ฟเวอร์เก็บข้อมูลเซสชันจริงไว้เอง การตั้งค่า: HttpOnly (สคริปต์ของหน้าอ่านไม่ได้) Secure (ส่งเฉพาะผ่าน HTTPS) SameSite=Lax (ไม่ถูกส่งในคำขอส่วนใหญ่ที่เริ่มจากเว็บอื่น) จำเป็นอย่างยิ่ง
cart_id ช่วยให้ผู้เข้าชมที่ไม่ได้ล็อกอินเก็บตะกร้าไว้ได้ ชี้ไปยังตะกร้าที่บันทึกไว้ใน ฐานข้อมูล จำเป็นอย่างยิ่ง เพราะผู้เข้าชมเป็นฝ่ายขอเพิ่มสินค้าลงตะกร้า
theme จำโหมดมืด สิ่งนี้อาจเป็นคุกกี้ได้ แต่ไม่จำเป็นต้องส่งไปยังเซิร์ฟเวอร์เลย ดังนั้น localStorage ของเบราว์เซอร์จึงง่ายกว่า
คุกกี้วิเคราะห์ ถูกเพิ่มถ้าคุณติดตั้งเครื่องมือวิเคราะห์ เหล่านี้ไม่จำเป็น ใน EU และสหราชอาณาจักร โดยทั่วไปต้องได้รับความยินยอมก่อนตั้งค่า ดังนั้นสคริปต์การวิเคราะห์ควรรอจนผู้เข้าชมคลิก "ยอมรับ"
สังเกตว่าร้านไม่ได้เก็บอะไรไว้ในคุกกี้: ชื่อ ที่อยู่ หรือรายละเอียดบัตรของลูกค้า คุกกี้เดินทางไปพร้อมทุกคำขอและอยู่บนอุปกรณ์ของผู้ใช้ ดังนั้นมันควรเก็บ ID ไม่ใช่ข้อมูลส่วนบุคคล
คำศัพท์ที่พบบ่อย
| คำศัพท์ | ความหมาย |
|---|---|
| Cookie | คู่ชื่อ-ค่าขนาดเล็กที่เบราว์เซอร์เก็บไว้และส่งกลับไปยังเว็บ |
Set-Cookie | header ของการตอบกลับที่เซิร์ฟเวอร์ใช้สร้างหรืออัปเดตคุกกี้ |
| Session | บันทึกของเซิร์ฟเวอร์เกี่ยวกับผู้ใช้ที่ล็อกอินอยู่ ผูกกับ ID ของคุกกี้ |
HttpOnly | หยุดไม่ให้ JavaScript ของหน้าอ่านคุกกี้ ซึ่งจำกัดความเสียหายจากสคริปต์ที่ถูกฉีดเข้ามา |
Secure | คุกกี้จะถูกส่งเฉพาะผ่านการเชื่อมต่อ HTTPS ที่เข้ารหัส |
SameSite | ควบคุมว่าคุกกี้จะถูกส่งในคำขอจากเว็บอื่นหรือไม่ (Strict, Lax หรือ None) |
Expires / Max-Age | เมื่อใดที่คุกกี้ควรถูกลบ |
| Domain / Path | ที่อยู่ใดบนเว็บที่จะได้รับคุกกี้ |
| localStorage | พื้นที่เก็บข้อมูลในเบราว์เซอร์ที่โค้ดหน้าอ่านได้ แต่จะไม่ถูกส่งไปเซิร์ฟเวอร์โดยอัตโนมัติ |
| XSS | Cross-site scripting: สคริปต์ของผู้โจมตีที่ทำงานในหน้าของคุณ ซึ่งอาจพยายามขโมยข้อมูล |
| CSRF | Cross-site request forgery: เว็บอื่นหลอกเบราว์เซอร์ให้ส่งคำขอพร้อมคุกกี้ของคุณ |
| Cookie consent | การขอความยินยอมจากผู้เข้าชมก่อนตั้งค่าคุกกี้ที่ไม่จำเป็น |
ความผิดพลาดและความเข้าใจผิดที่พบบ่อย
- "คุกกี้คือไวรัส" มันเป็นข้อความธรรมดา ไม่สามารถรันโค้ดบนคอมพิวเตอร์ของคุณได้
- ใส่ข้อมูลอ่อนไหวในคุกกี้ เก็บ ID สุ่มไว้และเก็บรายละเอียดไว้ที่เซิร์ฟเวอร์
- เก็บโทเค็นล็อกอินใน localStorage สคริปต์ใดๆ ที่รันบนหน้าอ่าน localStorage ได้ รวมถึงสคริปต์ที่ถูกฉีดเข้ามา คุกกี้
HttpOnlyสคริปต์ของหน้าอ่านไม่ได้เลย - ขาดแฟลก
SecureและHttpOnlyแฟลกสองตัวนี้ทำได้ง่ายและปิดช่องโหว่ทั่วไปได้ - คิดว่าแบนเนอร์ครอบคลุมทุกอย่าง แบนเนอร์ที่โหลดการวิเคราะห์ก่อนที่ใครจะคลิก "ยอมรับ" ไม่ได้ทำหน้าที่ของมัน
- ลืมล็อกเอาต์ การล็อกเอาต์ควรลบคุกกี้ และ จบเซสชันบนเซิร์ฟเวอร์ เพื่อให้คุกกี้ที่ถูกคัดลอกใช้ไม่ได้อีก
- "ถ้าฉันไม่ใช้คุกกี้ กฎความเป็นส่วนตัวก็ไม่ใช้กับฉัน" กฎอย่าง GDPR ครอบคลุมข้อมูลส่วนบุคคลไม่ว่าจะเก็บไว้ที่ใด รวมถึง local storage การระบุลายนิ้วมืออุปกรณ์ และล็อกของเซิร์ฟเวอร์
สิ่งที่ควรขอจาก AI builder ของคุณ
- "แสดงรายการคุกกี้ทุกตัวที่แอปตั้งค่า มีไว้ทำอะไร อยู่นานแค่ไหน และเป็นคุกกี้จำเป็นอย่างยิ่งหรือไม่"
- "ใช้คุกกี้
HttpOnly,Secure,SameSite=Laxสำหรับเซสชันการล็อกอิน อย่าใส่โทเค็นการยืนยันตัวตนไว้ใน localStorage" - "เก็บเฉพาะ ID เซสชันแบบสุ่มในคุกกี้ และเก็บข้อมูลเซสชันไว้ที่เซิร์ฟเวอร์"
- "เมื่อล็อกเอาต์ ให้ล้างคุกกี้และยกเลิกเซสชันที่เซิร์ฟเวอร์"
- "อย่าโหลดสคริปต์การวิเคราะห์หรือการตลาดจนกว่าผู้เข้าชมจะยอมรับ และจำการเลือกของเขาไว้"
- "เพิ่มส่วนเรื่องคุกกี้แบบง่ายในนโยบายความเป็นส่วนตัวที่ตรงกับรายการข้างต้น"
สำหรับส่วนความยินยอม ดูวิธีเพิ่มการขอความยินยอมคุกกี้ สำหรับวิธีที่คุกกี้เข้ากับการล็อกอิน อ่านการยืนยันตัวตนคืออะไร
คุกกี้ใน Mythex
Mythex ไม่มีการล็อกอินในตัวสำหรับผู้ใช้ของแอปคุณ ดังนั้นคุกกี้ที่แอปของคุณตั้งมาจากโค้ดของแอปเองและเครื่องมือที่คุณเพิ่มเข้าไป เช่น คุกกี้เซสชันจากวิธียืนยันตัวตนที่คุณเลือก ขอให้เอเจนต์ในแชตแสดงรายการ ปรับการตั้งค่าให้เข้มขึ้น หรือเพิ่มแบนเนอร์ความยินยอม และตรวจผลลัพธ์ในพรีวิวสดก่อนเผยแพร่ สูตรในเอกสารเรื่องการเพิ่มการล็อกอินให้แอปของคุณ เป็น prompt เริ่มต้นที่ดี และความปลอดภัยสำหรับแอปที่คุณสร้าง อธิบายการเก็บคีย์และความลับให้ห่างจากเบราว์เซอร์
คำถาม
คุกกี้บนเว็บไซต์คืออะไร?
คุกกี้คือข้อความชิ้นเล็กๆ ที่เว็บไซต์ขอให้เบราว์เซอร์ของคุณเก็บไว้ เบราว์เซอร์จะส่งกลับไปพร้อมทุกคำขอในภายหลังไปยังเว็บนั้น ทำให้เว็บจำสิ่งต่างๆ ได้ เช่น คุณล็อกอินอยู่หรือไม่ หรือมีสินค้าอะไรอยู่ในตะกร้า
คุกกี้อันตรายไหม?
คุกกี้เป็นเพียงข้อมูล ไม่ใช่โปรแกรม ดังนั้นมันรันโค้ดหรือทำให้คอมพิวเตอร์ติดไวรัสไม่ได้ ข้อกังวลคือเรื่องความเป็นส่วนตัว เมื่อคุกกี้จากบุคคลที่สามติดตามคุณข้ามเว็บ และเรื่องความปลอดภัย เมื่อคุกกี้ล็อกอินถูกขโมยไปและนำไปใช้แอบอ้างเป็นคุณ
คุกกี้ First-party กับ Third-party ต่างกันอย่างไร?
คุกกี้ First-party ถูกตั้งโดยเว็บที่อยู่บนแถบที่อยู่ของเบราว์เซอร์ เช่น คุกกี้ล็อกอิน ส่วนคุกกี้ Third-party ถูกตั้งโดยโดเมนอื่นที่ฝังอยู่ในหน้า เช่น เครือข่ายโฆษณา และมักใช้ติดตามคุณข้ามเว็บจำนวนมาก
ฉันต้องมีแบนเนอร์คุกกี้ไหม?
ขึ้นอยู่กับว่าผู้ใช้ของคุณอยู่ที่ไหน และคุณใช้คุกกี้อะไร ใน EU และสหราชอาณาจักร คุกกี้ที่ไม่จำเป็น เช่น การวิเคราะห์หรือโฆษณา โดยทั่วไปต้องได้รับความยินยอมก่อน ส่วนคุกกี้ที่จำเป็นอย่างยิ่งต่อบริการ เช่น เซสชันการล็อกอิน มักไม่ต้อง ตรวจสอบกฎที่ใช้กับคุณ
คุกกี้กับ localStorage ต่างกันอย่างไร?
ทั้งสองเก็บข้อมูลไว้ในเบราว์เซอร์ คุกกี้ถูกส่งไปยังเซิร์ฟเวอร์โดยอัตโนมัติพร้อมทุกคำขอ ซึ่งเหมาะกับการล็อกอิน ส่วน localStorage อยู่ในเบราว์เซอร์และมีเพียงโค้ดของหน้าเองที่อ่านได้ ซึ่งเหมาะกับการตั้งค่า เช่น ธีม