เซสชัน PHP: จะเกิดอะไรขึ้นหากฉันตั้งค่าเซสชันให้หมดอายุเป็น 10 วัน

ฉันต้องการให้ผู้ใช้แอปพลิเคชันของฉันอยู่ในระบบเป็นระยะเวลานาน ปัญหาคือเซสชันหมดอายุที่ฝั่งเซิร์ฟเวอร์ ทำให้สูญเสียตัวแปรที่เก็บไว้ในเซสชัน ฉันกำลังตั้งค่าเซสชั่นให้หมดอายุใน 10 วัน

คำถามของฉันคือ: มีปัญหาด้านความปลอดภัยหรือประสิทธิภาพในการตั้งค่าการหมดอายุของ GC และอายุการใช้งานคุกกี้เป็น 10 วันหรือไม่

ini_set('session.cookie_lifetime', 864000);
ini_set('session.gc_maxlifetime', 864000);

person Amer    schedule 17.10.2009    source แหล่งที่มา


คำตอบ (2)


แน่นอนว่ายิ่งการหมดเวลาของเซสชันมากเท่าใด ความเสี่ยงของการขโมยคุกกี้/เซสชันก็จะยิ่งมากขึ้นเท่านั้น แต่เว้นแต่ว่าคุณกำลังจัดการกับข้อมูลที่ละเอียดอ่อนสูง (บันทึกด้านสุขภาพ ธนาคารออนไลน์ ฯลฯ) ฉันก็คงจะทำเช่นเดียวกับคุณ อันที่จริงฉันมี

person cletus    schedule 17.10.2009
comment
ขอบคุณ. ความคิดของฉันคือ: มันต้องดีกว่าการเก็บไว้ในฐานข้อมูลและดึงข้อมูลทุกครั้งที่เซสชันหมดอายุ ไชโย! - person Amer; 17.10.2009

คุณจะเพิ่มความเสี่ยงของการไฮแจ็กเซสชัน

ฉันจะเรียก session_regenerate() เป็นระยะ นั่นจะช่วยลดความเสี่ยงสำหรับผู้ใช้ที่เข้าสู่ระบบจริง แต่ไม่ได้ทำอะไรเลยสำหรับผู้ที่ไม่ได้เข้าสู่ระบบ

person Daren Schwenke    schedule 17.10.2009
comment
อีกวิธีเดียวที่เข้ามาในใจฉันเพื่อให้ผู้ใช้เข้าสู่ระบบได้คือคุกกี้ 'จดจำฉัน' แต่คิดอีกแง่หนึ่ง มันก็จะเสี่ยงต่อการถูกขโมยเซสชันเช่นกัน แอปที่ฉันกำลังสร้างไม่ได้จัดการกับข้อมูลที่ละเอียดอ่อนใดๆ ดังนั้นการไฮแจ็กเซสชันจึงไม่น่าจะเป็นไปได้ โอ้ ฉันใช้ session_regenerate() อยู่แล้ว เพียงต้องการให้ผู้ใช้อยู่ในระบบต่อไป แม้ว่าเขาจะไม่ดำเนินการใดๆ หรือออกจากไซต์ไปทั้งวันก็ตาม ขอบคุณ :) - person Amer; 17.10.2009