Configuration des alertes de sécurité Better Auth Infrastructure
Configuration des alertes de sécurité Better Auth Infrastructure
Configuration des IP headers et secure cookies pour corriger les alertes du dashboard
Problème
Le dashboard Better Auth Infrastructure affichait deux alertes de sécurité :
- IP Address Headers Not Configured : Les headers IP ne sont pas configurés pour le rate limiting
- Insecure Cookies Configuration : Les cookies sécurisés ne sont pas activés
Diagnostic
Ces fonctionnalités ne sont pas laissées entièrement à la charge de Better Auth Infrastructure. Elles peuvent être configurées directement dans le code Better Auth :
- Secure Cookies : Configurable via
advanced.useSecureCookies - IP Headers : Configurable via
advanced.ipAddress.ipAddressHeaders - Rate Limiting : Configurable via
rateLimitavec KV comme storage
Solution
1. Import de createKVStorage
Ajout de l’import pour créer le secondary storage KV :
import { createKVStorage } from "better-auth-cloudflare";2. Configuration de secondaryStorage
Ajout de KV comme secondary storage pour le rate limiting :
secondaryStorage: env.AUTH_KV ? createKVStorage(env.AUTH_KV) : undefined3. Configuration des IP Headers
Ajout de la configuration des headers IP pour Cloudflare :
advanced: { ipAddress: { ipAddressHeaders: ["cf-connecting-ip"] // Header Cloudflare spécifique }}4. Configuration du Rate Limiting
Ajout de la configuration du rate limiting avec KV comme storage :
rateLimit: { enabled: isProd, // Activé en production window: 60, // 60 secondes (minimum KV TTL) max: 100, // 100 requêtes max par fenêtre storage: "secondary-storage" // Utiliser KV pour le stockage}Fichier modifié
apps/web/src/auth/index.ts - Ajout de la configuration complète pour corriger les alertes
Important : Limitation KV TTL
Cloudflare KV a une limitation TTL minimum de 60 secondes. C’est pourquoi la fenêtre du rate limiting est configurée à 60 secondes minimum.
Test
Après déploiement, les alertes devraient disparaître du dashboard Better Auth Infrastructure.
Note
Le plugin dash() ne configure pas automatiquement KV comme secondary storage. Il faut le configurer manuellement avec createKVStorage().