- Enviado
- 24 de septiembre de 2026 a las 0:09 UTC
- Autor
- Kamo
- Commit
- 3e3c3e7
*** was set readable (httpOnly:false) and several responses handed the raw session id to the Navegador. Page script no puede usar la bandera HttpOnly de una cookie si un endpoint lee el valor de nuevo: - /api/session/extend and /api/session/info returned sessionInfo.sessionId, /api/user-info returned como tokenId, /api/debug/cookies como ***Value. Ahora regresan una vista previa de 8 caracteres (el único el consumidor era la pantalla de Debug System) o nada. - /valid se sirve sin puerta de sesión y cada galleta VALUE en la página - en la servidor, que ve HtpOnly cookies también. Ahora muestra nombres y tamaños. - /api/session/extend plants *** con httpOnly: true. El navegador todavía lo envía a EventSources, неннтеннихинилинильны y /meet/join que dependen de ella; script ya no puede leerlo. Ahora también falla cualquier galleta plantada legible. Las bases para el siguiente paso, inerte hasta /api/validate comienza a emitir mangos: - app/lib/sessionHandle.ts: sesión de una pestaña HANDLE es el id 128-hex sellado con AES-256-GCM bajo a key derived (HKDF) from SESSION HANDLE SECRET and a random per-browser key in an HtpOnly Host-KBK cookie. Exactamente 128 caracteres, por lo que cada cheque cliente existente lo acepta; inútil en cualquier otro navegador; manipular falla la etiqueta. sesiónHandle.test.ts cubre sello/abierto, extranjero navegador, manipulación, sin secretos. - proxy.ts abre un mango que llega a X-***-Token en el verdadero id para la ruta, así que el ~180 rutas que leen que el encabezado no necesita cambio; un mango que no abre gotas tanto el encabezado como la cookie compartida *** en lugar de dejar que la ruta vuelva a la sesión de otra pestaña. El matcher now includes /api/:path* explicitly (the static-file rule saltpped /api/*.png). - /api/generate-otk gana propósito=ws (30 s) para WebSocket apretones de manos; logout mantiene la clave del navegador (Las asas de otras pestañas dependen de ello). - k8s/deployment.yaml monta el secreto kamo-internal-session-handle Secret (creado en el cluster).
