ก็ไม่เสมอไป ใช้คุกกี้คุณดี แต่"ฉันสามารถเชื่อถือ ID ได้อย่างปลอดภัย"ขอให้ฉันขยายการอภิปรายด้วยจุดสำคัญ (ส่วนใหญ่เพื่อการอ้างอิงเนื่องจากจำนวนผู้เข้าชมของหน้านี้ดูเหมือนจะค่อนข้างสูง)
PHP สามารถกำหนดค่าให้รักษาเซสชันโดยการเขียน URL ใหม่แทนคุกกี้ ( วิธีที่ดีหรือไม่ดี (<- ดูตัวอย่างความคิดเห็นที่สูงที่สุดในนั้น) เป็นคำถามที่แยกต่างหากตอนนี้ให้ยึดติดกับคำถามปัจจุบันด้วยหมายเหตุด้านเดียว: ปัญหาที่โดดเด่นที่สุดของเซสชันตาม URL - ที่เห็นได้ชัด ทัศนวิสัยของ ID เซสชั่นเปล่า - ไม่เป็นปัญหากับการเรียก Ajax ภายใน แต่ถ้าเปิดใช้สำหรับ Ajax จะเปิดสำหรับส่วนที่เหลือของไซต์ด้วยดังนั้นจึงมี ... )
ในกรณีที่เซสชัน URL เขียนใหม่ (ทำซ้ำ) การเรียกใช้ Ajax จะต้องดูแลด้วยตนเองว่า URL คำขอของพวกเขาถูกออกแบบมาอย่างเหมาะสม (หรือคุณสามารถย้อนกลับโซลูชันที่กำหนดเองของคุณเองคุณสามารถใช้วิธีรักษาเซสชันในฝั่งไคลเอ็นต์ในกรณีที่มีความต้องการน้อยกว่า) ประเด็นคือการดูแลอย่างชัดเจนที่จำเป็นสำหรับความต่อเนื่องของเซสชันหากไม่ได้ใช้คุกกี้:
หากการเรียก Ajax เพียงดึง URL คำต่อคำออกจาก HTML (ตามที่ได้รับจาก PHP) นั่นควรจะเป็น OK เนื่องจากพวกมันถูกปรุงสุกแล้ว
หากพวกเขาจำเป็นต้องรวบรวมคำขอ URIs ด้วยตนเองจะต้องเพิ่มรหัสเซสชันใน URL ด้วยตนเอง (ตรวจสอบที่นี่หรือแหล่งที่มาของหน้าเว็บที่สร้างโดย PHP ( โดยเปิด URL ใหม่ ) เพื่อดูวิธีการทำ)
จากOWASP.org :
อย่างมีประสิทธิภาพเว็บแอปพลิเคชันสามารถใช้ทั้งกลไกคุกกี้หรือพารามิเตอร์ URL หรือแม้กระทั่งเปลี่ยนจากหนึ่งเป็นอื่น (การเขียน URL อัตโนมัติ) หากตรงตามเงื่อนไขบางประการ (ตัวอย่างเช่นการมีอยู่ของเว็บไคลเอ็นต์ที่ไม่มีการสนับสนุนคุกกี้หรือเมื่อคุกกี้ไม่ ยอมรับเนื่องจากความกังวลเกี่ยวกับข้อมูลส่วนบุคคลของผู้ใช้)
จากโพสต์ในฟอรัม Ruby :
เมื่อใช้ php กับคุกกี้รหัสเซสชันจะถูกส่งโดยอัตโนมัติในส่วนหัวของคำขอแม้สำหรับ Ajax XMLHttpRequests หากคุณใช้หรืออนุญาตเซสชัน php ที่ใช้ URL คุณจะต้องเพิ่มรหัสเซสชันใน URL คำขอ Ajax ทุกอัน
HttpOnly
สถานะเมื่อตั้งค่าคุกกี้ซึ่งหมายความว่า Javascript ของคุณจะไม่สามารถดูคุกกี้ได้ อย่างไรก็ตามคุกกี้จะยังคงถูกส่งสำหรับทั้ง AJAX และคำขอหน้าปกติและทำงานต่อไปเหมือนเดิมทุกประการ Javascript ของคุณจะไม่เห็นในdocument.cookie
เลย