X-XSS-Protection était un en-tête de sécurité qui existe depuis la version 4 de Google Chrome. Il a été conçu pour permettre à un outil de vérifier le contenu du site Web pour les scripts intersites reflétés. Tous les principaux navigateurs ont maintenant retiré la prise en charge de l'en-tête car il a fini par introduire des failles de sécurité. Il est fortement recommandé de ne pas définir du tout l'en-tête et de configurer à la place une politique de sécurité du contenu solide.
Astuce : Cross-Site Scripting est généralement abrégé en acronyme « XSS ».
Les scripts intersites reflétés sont une classe de vulnérabilité XSS où l'exploit est directement encodé dans l'URL et n'affecte que l'utilisateur qui visite l'URL. Le XSS reflété est un risque lorsque la page Web affiche les données de l'URL. Par exemple, si une boutique en ligne vous permet de rechercher des produits, elle peut très bien avoir une URL qui ressemble à ceci « website.com/search?term=gift » et inclure le mot « cadeau » sur la page. Le problème commence si quelqu'un met du JavaScript dans l'URL, s'il n'est pas correctement nettoyé, ce JavaScript pourrait être exécuté plutôt qu'imprimé à l'écran comme il se doit. Si un attaquant pouvait inciter un utilisateur à cliquer sur un lien avec ce type de charge utile XSS, il pourrait être en mesure de faire des choses comme reprendre sa session.
X-XSS-Protection était destiné à détecter et à prévenir ce type d'attaque. Malheureusement, au fil du temps, un certain nombre de contournements et même de vulnérabilités ont été découverts dans le fonctionnement du système. Ces vulnérabilités signifiaient que la mise en œuvre de l'en-tête X-XSS-Protection introduirait une vulnérabilité de script inter-sites dans un site Web par ailleurs sécurisé.
Pour se protéger contre cela, étant entendu que l'en-tête de la politique de sécurité du contenu, généralement abrégé en « CSP », inclut une fonctionnalité pour le remplacer, les développeurs de navigateurs ont décidé de retirer cette fonctionnalité. La plupart des navigateurs, y compris Chrome, Opera et Edge, ont supprimé la prise en charge ou, dans le cas de Firefox, ne l'ont jamais implémentée. Il est recommandé que les sites Web désactivent l'en-tête afin de protéger les utilisateurs utilisant encore des navigateurs hérités avec la fonctionnalité activée.
X-XSS-Protection peut être remplacé par le paramètre « unsafe-inline » dans l'en-tête CSP. Pouvoir activer ce paramètre peut demander beaucoup de travail selon le site Web, car cela signifie que tout JavaScript doit être dans des scripts externes et ne peut pas être inclus directement dans le HTML.