คุกกี้เป็นกลุ่มข้อมูลที่จัดเก็บไว้ในเบราว์เซอร์ซึ่งใช้เพื่อคงสถานะและข้อมูลอื่นๆ ที่เว็บไซต์ต้องใช้เพื่อใช้งานฟีเจอร์ต่างๆ ของคุกกี้
คุกกี้เป็นไฟล์ขนาดเล็กที่เว็บไซต์จัดเก็บไว้ในเครื่องของผู้ใช้ ซึ่งเป็นข้อมูลที่คุกกี้จัดเก็บจะเดินทางไปมาระหว่างเบราว์เซอร์และเว็บไซต์
คุกกี้แต่ละรายการคือคู่คีย์-ค่า พร้อมด้วยแอตทริบิวต์จำนวนหนึ่งที่ควบคุมว่าจะใช้คุกกี้ที่ไหนและเมื่อใด แอตทริบิวต์เหล่านี้ใช้สำหรับกำหนดสิ่งต่างๆ เช่น วันที่หมดอายุหรือการระบุว่าคุกกี้ควรส่งผ่าน HTTPS เท่านั้น คุณสามารถตั้งค่าคุกกี้ในส่วนหัว HTTP หรือผ่านอินเทอร์เฟซ JavaScript
คุกกี้เป็นหนึ่งในวิธีที่มีให้สำหรับเพิ่มสถานะถาวรในเว็บไซต์ ในช่วงหลายปีที่ผ่านมา ความสามารถของบริษัทได้พัฒนาและเปลี่ยนแปลงไป แต่ก็ได้ออกจากแพลตฟอร์มไปพร้อมกับปัญหาเดิมที่เป็นปัญหา หากต้องการแก้ไขปัญหานี้ เบราว์เซอร์ (รวมถึง Chrome, Firefox และ Edge) กำลังเปลี่ยนลักษณะการทำงานเพื่อบังคับใช้ค่าเริ่มต้นที่มีการรักษาความเป็นส่วนตัวมากขึ้น
การทำงานของคุกกี้
สมมติว่าคุณมีบล็อกที่ต้องการแสดงข้อความว่า "มีอะไรใหม่" การโปรโมตใน ผู้ใช้ ผู้ใช้ปิดโปรโมชันได้และจะไม่เห็นโปรโมชันนั้นอีกระยะหนึ่ง คุณสามารถจัดเก็บค่ากำหนดนั้นไว้ในคุกกี้ แล้วตั้งค่าให้หมดอายุใน 1 เดือน (2,600,000 วินาที) และส่งผ่าน HTTPS เท่านั้น ส่วนหัวนั้นจะมีลักษณะเช่นนี้ ดังนี้
Set-Cookie: promo_shown=1; Max-Age=2600000; Secure
เมื่อผู้อ่านดูหน้าที่ตรงกับข้อกำหนดเหล่านั้น แสดงว่าผู้อ่านอยู่ใน การเชื่อมต่อที่ปลอดภัย และคุกกี้มีอายุน้อยกว่าหนึ่งเดือน—เบราว์เซอร์ จะส่งส่วนหัวนี้ในคำขอ:
Cookie: promo_shown=1
คุณสามารถเพิ่มและอ่านคุกกี้ที่ใช้ได้กับเว็บไซต์นั้นใน JavaScript โดยใช้
document.cookie
การกำหนดให้กับ document.cookie
จะเป็นการสร้างหรือ
ลบล้างคุกกี้ด้วยคีย์นั้น ตัวอย่างเช่น คุณสามารถลองทำสิ่งต่อไปนี้ใน
คอนโซล JavaScript ของเบราว์เซอร์:
→ document.cookie = "promo_shown=1; Max-Age=2600000; Secure"
← "promo_shown=1; Max-Age=2600000; Secure"
การอ่าน document.cookie
จะแสดงคุกกี้ทั้งหมดที่สามารถเข้าถึงได้ในปัจจุบัน
โดยคั่นแต่ละคุกกี้ด้วยเครื่องหมายเซมิโคลอน
→ document.cookie;
← "promo_shown=1; color_theme=peachpuff; sidebar_loc=left"
ถ้าคุณลองใช้วิธีนี้กับไซต์ยอดนิยมบางแห่ง คุณจะสังเกตเห็นว่าโดยส่วนใหญ่
พวกเขาตั้งค่าคุกกี้มากกว่า 3 รายการอย่างมีนัยสำคัญ ในกรณีส่วนใหญ่ นั้น
คุกกี้จะถูกส่งในทุกคำขอที่ส่งไปยังโดเมนนั้น ซึ่งมี
ผลกระทบอื่นๆ ที่เกี่ยวข้อง แบนด์วิดท์การอัปโหลดมักถูกจำกัดมากกว่าการดาวน์โหลด
ดังนั้นโอเวอร์เฮดสำหรับคำขอขาออกทั้งหมดจึงเป็นการเพิ่มความล่าช้าให้กับเวลาของคุณ
ถึงไบต์แรก โปรดระมัดระวังในจำนวนและขนาดของคุกกี้ที่คุณตั้งค่าไว้ สร้าง
ใช้แอตทริบิวต์ Max-Age
เพื่อให้มั่นใจว่าไม่มีคุกกี้
นานกว่าที่จำเป็น
คุกกี้ของบุคคลที่หนึ่งและบุคคลที่สามคืออะไร
ถ้าคุณกลับไปที่ไซต์ที่เคยดูก่อนหน้านี้ อาจสังเกตเห็นว่ามีคุกกี้อยู่ในหลายโดเมน ไม่ใช่ เฉพาะรายการที่คุณกำลังเยี่ยมชมอยู่ คุกกี้ที่ตรงกับโดเมนของ เว็บไซต์ปัจจุบัน ซึ่งก็คือสิ่งที่แสดงในแถบที่อยู่ของเบราว์เซอร์ จะหมายถึง เป็นคุกกี้ของบุคคลที่หนึ่ง ในทำนองเดียวกัน คุกกี้จากโดเมนอื่นที่ไม่ใช่ เว็บไซต์ปัจจุบันจะเรียกว่าคุกกี้ของบุคคลที่สาม ข้อมูลนี้ไม่สมบูรณ์ แต่สัมพันธ์กับบริบทของผู้ใช้ คุกกี้เดียวกันสามารถเป็น บุคคลที่หนึ่งหรือบุคคลที่สาม โดยขึ้นอยู่กับเว็บไซต์ที่ผู้ใช้อยู่ในขณะนั้น
ต่อจากตัวอย่างข้างต้น สมมติว่าบล็อกโพสต์ของคุณมี
รูปภาพของแมวตัวหนึ่งที่น่าทึ่ง
และโฮสต์อยู่ที่
/blog/img/amazing-cat.png
เพราะเป็นภาพที่น่าทึ่งมาก การที่คนคนหนึ่ง
ใช้บนเว็บไซต์โดยตรง หากผู้เข้าชมเคยเข้าสู่บล็อกของคุณและมี
promo_shown
คุกกี้ จากนั้นเมื่อดู amazing-cat.png
ในอีก
เว็บไซต์ของบุคคลที่ส่งคุกกี้ไปในคำขอรูปภาพนั้น ช่วงเวลานี้
ไม่มีประโยชน์สำหรับใครเลยเนื่องจากไม่ได้ใช้ promo_shown
เพื่ออะไรเลย
บนไซต์ของบุคคลอื่น เป็นเพียงการเพิ่มค่าใช้จ่ายให้กับคำขอ
หากการดำเนินการดังกล่าวเกิดจากความไม่ตั้งใจ เหตุใดคุณจึงอยากทำแบบนี้ นี่คือ กลไกที่อนุญาตให้เว็บไซต์รักษาสถานะไว้เมื่อมีการใช้งานใน ข้อมูลของบุคคลที่สาม ตัวอย่างเช่น หากคุณฝังวิดีโอ YouTube ในเว็บไซต์ ผู้เข้าชมจะเห็นวิดีโอ "ดูภายหลัง" ในโปรแกรมเล่น หากผู้เข้าชมของคุณคือ ลงชื่อเข้าใช้ YouTube แล้ว และเซสชันนั้นจะพร้อมใช้งานใน โปรแกรมเล่นแบบฝังโดยคุกกี้ของบุคคลที่สาม ซึ่งหมายความว่า "ดูภายหลัง" ปุ่มจะ ก็เพียงบันทึกวิดีโอในครั้งเดียว โดยไม่ต้องการแจ้งให้ลงชื่อเข้าใช้หรือต้อง ให้นำทางออกจากหน้าเว็บแล้วกลับไปที่ YouTube
หนึ่งในทรัพย์สินทางวัฒนธรรมของเว็บคือ เว็บไซต์มีแนวโน้มที่จะเปิดโดย
"ค่าเริ่มต้น" สิ่งนี้เป็นส่วนหนึ่งของสิ่งที่ทำให้ผู้คนมากมาย
สามารถสร้างสรรค์
เนื้อหาและแอปของตนเองไว้ที่นั่น แต่วิธีนี้ก็ทำให้
ด้านความปลอดภัยและความเป็นส่วนตัว การโจมตีการปลอมแปลงคำขอแบบข้ามเว็บไซต์ (CSRF) ต้องอาศัย
การที่คุกกี้แนบมากับคำขอใดๆ ที่ส่งไปยังต้นทาง ไม่ว่า
ผู้ที่ส่งคำขอ ตัวอย่างเช่น หากคุณไปที่ evil.example
เรียกใช้คำขอไปยัง your-blog.example
และเบราว์เซอร์ของคุณจะแนบ
คุกกี้ที่เชื่อมโยง ถ้าบล็อกของคุณไม่ระมัดระวังเรื่องการตรวจสอบบล็อก
คำขอ evil.example
จะเรียกใช้การดำเนินการต่างๆ เช่น ลบโพสต์หรือเพิ่ม
เนื้อหาของตนเอง
นอกจากนี้ ผู้ใช้ยังตระหนักถึงวิธีการใช้คุกกี้เพื่อติดตาม
กิจกรรมในหลายเว็บไซต์ แต่ก่อนหน้านี้ยังไม่มีวิธีที่จะ
ระบุความตั้งใจของคุณอย่างชัดเจนกับคุกกี้ คุกกี้ promo_shown
ของคุณควร
ส่งในบริบทของบุคคลที่หนึ่งเท่านั้น ขณะที่คุกกี้เซสชันสำหรับวิดเจ็ต
ในเว็บไซต์อื่น
ก็มีไว้เพื่อให้
สถานะการลงชื่อเข้าใช้ในบริบทของบุคคลที่สาม
คุณระบุ Intent ของคุณเองด้วยคุกกี้ได้โดยการตั้งค่าแอตทริบิวต์ SameSite ที่เหมาะสม
ดูสูตรคุกกี้ของบุคคลที่หนึ่งเพื่อระบุคุกกี้ของบุคคลที่หนึ่งและตั้งค่าแอตทริบิวต์ที่เหมาะสม