Middleware & Sécurité

Protection Open Redirect

Fonctionnement

Une destination de redirection est considérée sûre si :

  • C'est un chemin relatif (/tableau-de-bord, ../profil) — toujours sûr
  • L'hôte est localhost ou loopback (localhost, 127.x.x.x, [::1], IPv6 mappé IPv4) — toujours sûr
  • L'hôte correspond à une entrée de with_allowed_hosts (exact ou sous-domaine wildcard)

Toute autre URL absolue est bloquée avec HTTP 400.


Configuration

Pas de configuration dédiée — le middleware lit with_allowed_hosts automatiquement :

.middleware(|m| {
    m.with_allowed_hosts(|h| {
        h.enabled(true)
         .host("monsite.fr")
         .host(".monsite.fr")  // monsite.fr + tous ses sous-domaines
    })
})

Le middleware open redirect est toujours actif et utilise la même liste d'hôtes.


URLs protocol-relative

Les URLs commençant par // (ex : //evil.com/chemin) sont traitées comme absolues et soumises à la même vérification. Elles sont bloquées sauf si l'hôte est dans la liste autorisée.