Ce que vérifie cet outil
Une redirection ouverte est une URL sur votre propre domaine qui renvoie les visiteurs ailleurs, entièrement contrôlée par un paramètre de requête que votre serveur ne valide jamais. Cet outil envoie une requête pour chacun des 9 noms de paramètres courants (url, next, redirect, et similaires), en pointant chacun vers une adresse canari inoffensive, et vérifie si la réponse est une redirection qui atterrit exactement sur cette adresse — ce qui signifierait que le paramètre contrôle la destination sans aucune liste de contrôle derrière.
Pourquoi les attaquants ciblent spécifiquement ce type de faille
Un lien de phishing pointant directement vers site-malveillant.com est signalé par tous les filtres anti-spam et paraît suspect à quiconque le regarde. Un lien comme votredomaine.com/login?next=site-malveillant.com paraît totalement légitime — il commence par un domaine en qui la victime a confiance, parfois un domaine avec lequel elle a déjà une relation — et ne redirige vers la page de l'attaquant qu'après le clic. Comme le domaine initial est réel, cela contourne les vérifications de réputation de domaine qui bloquent d'emblée les liens ouvertement malveillants.
Le correctif est presque toujours une liste autorisée
La version sûre d'une redirection post-connexion ne prend pas une URL arbitraire — elle prend un petit ensemble de destinations connues comme sûres (ou, plus simplement, n'accepte qu'un chemin relatif commençant par /, jamais une URL complète avec son propre hôte). Si l'assistant de redirection de votre framework accepte une chaîne brute venant d'une entrée utilisateur, ajoutez une vérification : la cible commence-t-elle par / et ne commence-t-elle pas par // (les URLs relatives au protocole restent absolues) avant de rediriger vers elle.