Puncte:0

Mai multe anteturi de ID de sesiune trimise de Apache HTTPD care servesc PHP

drapel zw

Problemă

Primesc mai multe antete HTTP egale în răspunsurile unei aplicații web. Uneori sunt zeci de replici în funcție de scriptul numit.

Înființat

Este o aplicație mare și foarte veche bazată pe PHP. Este livrat folosind Apache HTTPD 2.4 (Debian) folosind php7_module modul.

Aplicația are un cod de bibliotecă care gestionează informațiile despre sesiune. În acest cod se împachetează manipularea cu sesiune_start(); și session_write_close();.

Încercarea mea

Cercetare

Am citit despre problemă și ceea ce am învățat este că împachetarea se face pentru a debloca obiectul sesiune, astfel încât și alte părți ale aplicației să poată citi și scrie în el. Aceasta pare a fi o tehnică în multe aplicații.

Am citit, de asemenea, despre un bug în PHP care cauzează exact acest comportament. De fapt, au existat mai multe rapoarte de erori de-a lungul anilor pe care le-am găsit. Un exemplu de raport: https://bugs.php.net/bug.php?id=38104

Toate rapoartele sunt închise și rezolvate. Ar trebui să nu mai fie o eroare reală în PHP. Am citit, de asemenea, că se pare că se întâmplă doar atunci când utilizați modulul PHP Apache HTTPD și nu când apelați direct PHP.

PHP

Am încercat o soluție programatică în care doar iterez peste antetele de la sfârșitul scriptului „vizualizare” și mă asigur că există doar unul Set-Cookie antet. Totuși, aceasta nu este o soluție reală, deoarece există sute de vizualizări și ar trebui să se întâmple pentru fiecare dintre acestea existente acum și în viitor.

Notă de antet HTTPD

Am încercat să folosesc mod_headers Notă comanda de la Directiva antet, dar nu am reușit să o fac încă să funcționeze.

Notă de antet Set-Cookie saved_cookie
Antet dezactivat Set-Cookie
Set antet Set-Cookie „%{saved_cookie}n”

Nu am găsit exemple bune despre cum să-l folosesc. Nici eu nu știu dacă notele pot fi chiar folosite în acest fel.

Întrebare

Știe cineva o soluție despre cum să remediați acest lucru, poate cu o configurație a HTTPD sau orice se poate face o singură dată.

SvenTUM avatar
drapel zw
Am restructurat codul și am adăugat nota de antet HTTPD a secțiunii, care a fost încă o încercare care a eșuat.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.