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.