เพราะเหตุใดเว็บไซต์ยอดนิยมจึงเก็บข้อมูลที่เกี่ยวข้องกับเซสชันที่ซับซ้อนมากในคุกกี้ - และมันหมายความว่าอย่างไร


19

ในฐานะนักพัฒนาเว็บเราทุกคนเรียนรู้ว่าเซสชันช่วยให้เอาชนะปัญหาที่เกี่ยวข้องกับลักษณะไร้สัญชาติของ HTTP เราสร้างรหัสเซสชันที่ไม่ซ้ำกันและส่งไปยังเบราว์เซอร์ - และเมื่อเบราว์เซอร์ส่งรหัสเดียวกันกลับมาให้เราเราจะระบุผู้ใช้อย่างง่ายดาย

ทั้งหมดนี้ฟังดูค่อนข้างตรงไปตรงมาและไม่ซับซ้อนในการใช้ในภาษาใด ๆ

ตอนนี้

ดูภาพหน้าจอต่อไปนี้ที่ฉันถ่าย สิ่งเหล่านี้แสดงประเภทของเว็บไซต์ยอดนิยมที่เก็บคุกกี้ ดูเหมือนว่าพวกเขากำลังจัดเก็บ ID เซสชันหลายรายการหรือพยายามซ่อน ID จริงโดยการตั้งค่าคุกกี้จำนวนมากหรือเป็นมาตรการรักษาความปลอดภัยพิเศษที่พวกเขาใช้เพื่อป้องกันการไฮแจ็กเซสชันและปัญหาอื่น ๆ ที่เกี่ยวข้อง หรืออะไรก็ตาม

Gmail (ก่อนเข้าสู่ระบบ)

ป้อนคำอธิบายรูปภาพที่นี่

Gmail (หลังเข้าสู่ระบบ)

ป้อนคำอธิบายรูปภาพที่นี่

Facebook

ป้อนคำอธิบายรูปภาพที่นี่

StackExchange

ป้อนคำอธิบายรูปภาพที่นี่

(ไม่ต้องกังวลคุณไม่สามารถขโมยเซสชั่นของฉัน - มันเก่าและไม่สมบูรณ์ :))

ดังนั้นคำถามของฉันคือ - ความซับซ้อนนี้ให้บริการอะไร? โปรดอธิบายความหมายของคุกกี้ที่แตกต่างกันเหล่านี้ (โดยทั่วไป) และเพื่อจุดประสงค์ใดที่ตั้งค่าไว้ สุดท้ายให้คำแนะนำเกี่ยวกับวิธีที่ฉันสามารถทำได้ (และควรทำ) ในแอปของฉันเอง

คำถามอีกข้อหนึ่ง: ในหลายกรณีค่าในคุกกี้ดูเหมือนว่ามีการเข้ารหัส URL - เพราะเหตุใด

คำตอบ:


21
  1. บางครั้งการเก็บข้อมูลบางอย่างในตารางเซสชั่นบนฐานข้อมูลอาจไม่เหมาะสม หากข้อมูลบางอย่างได้รับการอัพเดทเป็นจำนวนมากก็อาจทำให้ฐานข้อมูลชะงักได้เช่นกัน หากเป็นกรณีนี้และข้อมูลไม่สำคัญเกินไปอาจจัดเก็บไว้ในคุกกี้แยกต่างหาก

  2. เมื่อ (1) เกิดขึ้นคุณต้องจัดการกับขีด จำกัด 4kb ต่อคุกกี้ดังนั้นการเก็บข้อมูลเซสชันในคุกกี้ทั้งหมดไว้ในคุกกี้เดียวจึงเป็นความคิดที่ไม่ดี

  3. มันคงจะดีถ้าเราสามารถจัดเก็บทุกอย่างในจำนวนคุกกี้ขั้นต่ำที่ต้องการ แต่ความกังวลเกี่ยวกับความซับซ้อนของโครงการทำให้เป็นเรื่องยาก บางโปรแกรมมีการพัฒนาโดยหลายทีม บางครั้งสิ่งที่คุณเห็นว่าเว็บเซิร์ฟเวอร์เดียวเป็นจริงพร็อกซีที่พูดคุยกับกลุ่มของเว็บเซิร์ฟเวอร์ที่แตกต่างกันหลายเส้นทางเส้นทางส่วนต่าง ๆ ของเว็บไซต์ไปยังกลุ่มที่แตกต่างกันแต่ละคนมีชุดคุกกี้ของตัวเอง

  4. คุกกี้ราคาถูก คุณได้รับการยกเว้นจากกฎ - ไม่มีใครดูในที่เก็บคุกกี้เพื่อดูว่ามีคุกกี้กี่รายการ และมีผลประโยชน์เล็ก ๆ น้อย ๆ ที่จะพยายามที่จะรวมทุกข้อมูลเซสชั่นฝั่งไคลเอ็นต์เข้าคุกกี้น้อยที่สุด


ฉันยังเป็นข้อยกเว้นของกฎ
Michael Slade
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.