- Shipped
- 24 septembrie 2026 la 00:09 UTC
- Author
- Kamo
- Commit
- 3e3c3e7
*** a fost setat lizibil (httpOnly:fals) şi mai multe răspunsuri au înmânat sesiunea brută id browser. Script-ul paginii nu poate folosi steagul HttpOnly al unui cookie dacă un obiectiv citește valoarea înapoi: - /api/sesiune/extindere şi /api/sesiune/info sesiune returnatăInfo.sessionId, /api/user-info returnat este ca tokenId, /api/debug/cookies as ***Value. Ei returnează acum o previzualizare de 8 caractere (singurul Consumatorul a fost ecranul System Debug) sau nimic. - /valid este servit cu nici o poarta sesiune și a transformat fiecare cookie VALORA în pagina server, care vede HttpOnly cookie-uri prea. Acum arată nume şi mărimi. - /api/session/extinde plantele *** cu httpOnly: true. Browser-ul încă îl trimite la EventSources, <img>/<video> și /meet/join care depinde de ea; script-ul nu mai poate citi. - ************* acum, de asemenea, nu reușește orice *** cookie plantat lizibil. Lucru la sol pentru pasul următor, inert până când /api/validat începe emiterea mânerelor: - app/lib/sessionHandle.ts: session handle a file is the 128-hex id sigiled with AES-256-GCM under o cheie derivată (HKDF) din SESSION HANDLE SECRET și o cheie aleatorie per-browser într-un HttpOnly Host-KBK cookie. Exact 128 de caractere, astfel încât fiecare verificare client existent o acceptă; inutil în orice alt browser; falsificarea nu reușește eticheta. SessionHandle.test.ts acoperă sigiliul/deschis, străin browser, falsificare, nici un secret. - proxy.ts deschide un mâner care ajunge în X-***-Token în ID-ul real pentru traseu, astfel încât ~180 rute care citesc că antetul nu are nevoie de schimbare; un mâner care nu deschide picături atât antet și cookie-ul shared *** în loc să lase ruta să se retragă la o altă sesiune de file. ă Matcher include acum /api/:pat* explicit (regula static-file omis /api/*.png). - /api/generate-otk câștigă scop=ws (30 s) pentru strângerea de mână WebSocket; logout păstrează cheia browser-ului (alte mânere depind de asta). - k8s/deplasment.yaml monteaza kamo-internal-session-handle Secret (creat in cluster).
