XSS Stocké
Qu'est-ce que XSS Stocké ?
XSS StockéFaille XSS persistante : le script de l'attaquant est enregistré sur le serveur puis exécuté dans le navigateur de chaque visiteur.
Le XSS stocké (ou persistant) survient lorsqu'une application accepte une entrée non fiable, la sauvegarde dans une base de données, un système de fichiers ou un journal, puis la restitue ultérieurement en HTML sans encodage de sortie adéquat. Comme la charge réside sur le serveur, chaque utilisateur consultant la page affectée exécute automatiquement le script, ce qui en fait l'une des failles web les plus graves. Les cibles classiques sont les commentaires, profils utilisateurs, avis produits ou tableaux d'administration affichant des journaux. Les défenses comprennent l'encodage de sortie selon le contexte, une Content Security Policy stricte, la validation des entrées et des bibliothèques d'assainissement comme DOMPurify.
● Exemples
- 01
Un commentaire de blog contenant <script>fetch('/api/me').then(...)</script> qui s'exécute chez chaque lecteur.
- 02
L'attaquant stocke la charge dans son nom de profil, qui s'exécute dans le panneau d'administration listant les utilisateurs.
● Questions fréquentes
Qu'est-ce que XSS Stocké ?
Faille XSS persistante : le script de l'attaquant est enregistré sur le serveur puis exécuté dans le navigateur de chaque visiteur. Cette notion relève de la catégorie Attaques et menaces en cybersécurité.
Que signifie XSS Stocké ?
Faille XSS persistante : le script de l'attaquant est enregistré sur le serveur puis exécuté dans le navigateur de chaque visiteur.
Comment fonctionne XSS Stocké ?
Le XSS stocké (ou persistant) survient lorsqu'une application accepte une entrée non fiable, la sauvegarde dans une base de données, un système de fichiers ou un journal, puis la restitue ultérieurement en HTML sans encodage de sortie adéquat. Comme la charge réside sur le serveur, chaque utilisateur consultant la page affectée exécute automatiquement le script, ce qui en fait l'une des failles web les plus graves. Les cibles classiques sont les commentaires, profils utilisateurs, avis produits ou tableaux d'administration affichant des journaux. Les défenses comprennent l'encodage de sortie selon le contexte, une Content Security Policy stricte, la validation des entrées et des bibliothèques d'assainissement comme DOMPurify.
Comment se défendre contre XSS Stocké ?
Les défenses contre XSS Stocké combinent habituellement des contrôles techniques et des pratiques opérationnelles, comme détaillé dans la définition ci-dessus.
Quels sont les autres noms de XSS Stocké ?
Noms alternatifs courants : XSS Persistant, XSS Type 2.
● Termes liés
- attacks№ 240
Cross-Site Scripting (XSS)
Vulnérabilité web permettant à un attaquant d'injecter des scripts malveillants dans des pages consultées par d'autres utilisateurs, exécutés dans leur navigateur sous l'origine du site.
- attacks№ 912
XSS Réfléchi
XSS non persistant où l'entrée contrôlée par l'attaquant est immédiatement reflétée dans la réponse et exécutée dans le navigateur de la victime.
- attacks№ 347
XSS Basé sur le DOM
Variante de XSS où l'injection et l'exécution se produisent entièrement dans le navigateur, du JavaScript client écrivant des données non assainies dans un sink dangereux.
- appsec№ 214
Politique de sécurité du contenu (CSP)
En-tête HTTP indiquant au navigateur quelles sources de scripts, styles, cadres et autres contenus sont autorisées, limitant l'impact des XSS et des injections de données.
- appsec№ 773
Encodage de sortie
Transformation des données non fiables dans une forme sûre pour un contexte précis (HTML, JavaScript, URL, SQL, shell) afin qu'elles ne s'évadent pas pour être exécutées comme du code.
- appsec№ 538
Validation des entrées
Contrôle côté serveur vérifiant que chaque entrée non fiable correspond au type, à la longueur, à la plage, au format et à l'ensemble de valeurs attendus avant tout traitement.
● Voir aussi
- № 104XSS Aveugle