ปัญหา
ฉันได้รับส่วนหัว HTTP ที่เท่ากันหลายรายการในการตอบสนองของเว็บแอปพลิเคชัน บางครั้งก็มีการทำซ้ำหลายสิบครั้งขึ้นอยู่กับสคริปต์ที่เรียก
ติดตั้ง
เป็นแอปพลิเคชันที่ใช้ PHP ขนาดใหญ่และเก่ามาก จัดส่งโดยใช้ Apache HTTPD 2.4 (Debian) โดยใช้ php7_module โมดูล.
แอปพลิเคชันมีรหัสไลบรารีที่จัดการข้อมูลเซสชัน ในรหัสนี้จะห่อการจัดการด้วย session_start();
และ session_write_close();
.
ความพยายามของฉัน
วิจัย
ฉันได้อ่านเกี่ยวกับปัญหาแล้ว และสิ่งที่ฉันได้เรียนรู้ก็คือการห่อเสร็จสิ้นเพื่อปลดบล็อกวัตถุเซสชัน เพื่อให้ส่วนอื่นๆ ของแอปพลิเคชันสามารถอ่านและเขียนได้ ดูเหมือนว่าจะเป็นเทคนิคในการใช้งานหลายๆ
ฉันยังอ่านเกี่ยวกับข้อบกพร่องใน PHP ที่ทำให้เกิดพฤติกรรมที่แน่นอนนี้ จริง ๆ แล้วมีรายงานข้อผิดพลาดหลายฉบับในช่วงหลายปีที่ผ่านมาที่ฉันพบ ตัวอย่างหนึ่งรายงาน: https://bugs.php.net/bug.php?id=38104
รายงานทั้งหมดถูกปิดและแก้ไขแล้ว มันควรจะไม่ใช่ข้อผิดพลาดที่เกิดขึ้นจริงใน PHP อีกต่อไป ฉันยังอ่านด้วยว่าดูเหมือนว่าจะเกิดขึ้นเมื่อใช้โมดูล Apache HTTPD PHP เท่านั้น ไม่ใช่เมื่อเรียกใช้ PHP โดยตรง
พี.เอช.พี
ฉันลองใช้วิธีแก้ปัญหาแบบเป็นโปรแกรมโดยที่ฉันวนซ้ำส่วนหัวในส่วนท้ายของสคริปต์ "ดู" และตรวจสอบให้แน่ใจว่ามีเพียงหนึ่งเดียว ชุดคุกกี้
หัวข้อ. อย่างไรก็ตาม นี่ไม่ใช่วิธีแก้ปัญหาที่แท้จริงเนื่องจากมีการดูเป็นร้อยครั้ง และมันจะต้องเกิดขึ้นกับทุก ๆ การดูที่มีอยู่ในปัจจุบันและอนาคต
หมายเหตุส่วนหัว HTTPD
ฉันพยายามใช้ mod_headers บันทึก
คำสั่งจาก คำสั่งส่วนหัวแต่ฉันยังไม่สามารถดำเนินการได้
หมายเหตุส่วนหัว Set-Cookie save_cookie
ส่วนหัวยกเลิกการตั้งค่า Set-Cookie
ชุดส่วนหัว ชุดคุกกี้ "%{saved_cookie}n"
ฉันไม่พบตัวอย่างที่ดีเกี่ยวกับวิธีใช้ ฉันก็ไม่รู้เหมือนกันว่าจะใช้โน้ตแบบนี้ได้ไหม
คำถาม
ไม่มีใครรู้วิธีแก้ไขปัญหานี้ด้วยการกำหนดค่า HTTPD หรืออะไรก็ตามที่สามารถทำได้ในครั้งเดียว