KamoCRM

Citiți sesiunea din fila, nu borcanul comun cookie

Fixkamo-internal
Shipped
24 august 2026 la 23:05 UTC
Author
kamo
Commit
1b1c236

46 de module de clienti citesc ID-ul *** din document. cookie și a trimis-o ca X-***-Token. SessionStorage este per-TAB; un cookie este per-ORIGIN. În timp ce Fiecare organizație a avut un nume de gazdă proprie care au fost aceeași limită, aşa că nu a contat. Servirea organizațiilor fără domeniu dintr-unul gazda comună se termină astfel: cookie-ul devine un singur slot orice filă poate suprascrie, astfel încât o filă poate trimite o sesiune de altă organizație decât una pe care o expune. Cea mai mare parte acest lucru a fost deja mascat. installSessionLayer() patch-uri fereastră. Aduce pentru a stabili apelurile X-***-Token din sesiuneStorage privind aceeași origine/api/* și antete.set () suprascrie, astfel încât un antet explicit cu sursă de cookie este în mod normal înlocuit - fiecare dintre aceste site-uri de apel este aceeași origine /api / *, și nici unul atinge un WebSocket sau o altă origine. În mod normal, plasturele nu este întotdeauna: numai focuri atunci când sesiuneStorage are un simbol, astfel încât o filă proaspăt deschisă cu un Magazinul gol trimite tot ce are prăjitura. Acesta este cazul în care se închide. app/logout/page.tsx își păstrează cookie-ul scris -- de compensare a acestora este modul în care o sesiunea este demolată -- şi utilizareaSmsWebSocket.ts a fost deja migrată; document.cookie este într-un comentariu care explică de ce nu trebuie utilizat. verifica-session-token-source.mjs deține linia, cu cele două permise enumerate și motivele lor înregistrate. Acesta benzi comentarii înainte de potrivire, astfel încât o explicația de ce este evitat cookie-ul nu se citește ca o utilizare a acestuia. Două fișiere au fost CRLF și o rescriere naivă le reflowed în întregime; acestea au fost Refaceți bite-înțelept, astfel încât diff este înlocuirea și nimic altceva. 2882 teste şi toate cele 8 gărzi trec. Construcția producției nu a putut fi realizată local -- alte sesiuni țin următoarea blocare a clădirii continuu -- dar TSC este curat şi o construcţie completă anterioară a aceluiaşi cod a reuşit; numai linie Finalurile s-au schimbat după asta.

All changes

Like what you see shipping?

All of it arrives in your workspace on its own. Start on the free plan and read this page again in a month.

Start Free ForeverView Pricing