Protège ton auth token des failles XSS: apprends à créer un helper TypeScript Hono pour lire et placer un cookie HttpOnly, sûr 30 jours, compatible CSRF.
Un cookie HttpOnly est invisible pour JavaScript côté navigateur.
Résultat : même si un script malveillant s’exécute (XSS), il ne pourra pas lire ton
token. Le serveur seul y accède via l’en-tête Cookie
.
1import type { Context } from "hono";2import { getCookie, setCookie } from "hono/cookie";34export const TOKEN_COOKIE_NAME = "auth_token";56export function getAuthToken(c: Context): string | undefined {7return getCookie(c, TOKEN_COOKIE_NAME); // ^? Tooltip: Lit le cookie si présent8}910export function setAuthToken(c: Context, token: string): void {11setCookie(c, TOKEN_COOKIE_NAME, token, {12httpOnly: true, // ^? Tooltip: Inaccessible via document.cookie13path: "/", // ^? Tooltip: Disponible partout dans l'app14maxAge: 60 * 60 * 24 * 30, // ^? Tooltip: 30 jours (en secondes)15sameSite: "Lax", // ^? Tooltip: Protège contre la plupart des CSRF16});17}
Explications ligne par ligne :
TOKEN_COOKIE_NAME
: un seul endroit à modifier si tu changes le nom.getAuthToken
: lit la valeur stockée, retourne undefined
si le cookie n’existe pas.setAuthToken
:
httpOnly: true
→ sécurité XSS.path: "/"
→ le cookie suit toutes les routes.maxAge
→ 30 jours de durée de vie, assez long pour éviter des reconnexions fréquentes.sameSite: "Lax"
→ meilleures protections CSRF sans bloquer la navigation normale.Prochaine étape : intégrer ces helpers dans ton middleware de protection de routes.
Testez vos connaissances avec 5 questions
Sélectionnez toutes les réponses qui s'appliquent