web-dev-qa-db-fra.com

Quelle était la vraie raison de la suppression de la directive reflétée-xss du CSP?

Il y avait deux en-têtes de réponse qui pouvaient être définis par les serveurs pour demander aux navigateurs d'activer la détection et la prévention XSS réfléchie basée sur l'heuristique dans le passé.

  1. Protection X-XSS: 1; mode = bloc
  2. Contenu-Sécurité-Politique: reflétée-xss

Protection X-XSS

Cet en-tête selon MDN ;

Politique de sécurité du contenu

Le CSP 2.0 ni 3.0 spécifie une directive reflétée-xss. Il était dans les versions préliminaires du CSP 2.0 et la plupart des navigateurs modernes ne le prennent pas en charge ( Chrome ) ou n'ont aucune mention de la directive.

  1. Est-ce que c'est une supposition juste que les navigateurs modernes n'ont pas de protection XSS basée sur l'heuristique qui pourrait être contrôlée par un en-tête de serveur?
  2. Existe-t-il d'autres en-têtes de protection XSS largement adoptés?
5
hax

Je pense que le lien Mozilla que vous fournissez contient suffisamment pour répondre à votre question (citations retirées du fil afin que je puisse raconter une meilleure histoire) :

Firefox pourrait faire mieux en utilisant un algorithme (probablement plus cher) tel que celui décrit ici ( http://seclab.cs.sunysb.edu/seclab/pubs/ndss09.pdf ). L'interposition sur l'exécution de script au lieu du trafic HTTP (comme le fait cet article) permet de faire correspondre des chaînes plus petites qui ne provoquent probablement pas un ralentissement important avec cet algorithme.

Cet algorithme heuristique de protection XSS repose donc sur une pile de chaînes de comparaison entre l'URL et le contenu de la page, et sera donc mal vu par les personnes qui souhaitent réduire l'empreinte CPU du navigateur.


Pendant que nous attendons que les navigateurs et les sites Web adoptent CSP, une protection contre les attaques XSS réfléchies pourrait être un ajout utile à Mozilla. En fait, il pourrait être implémenté comme CSP par défaut pour les sites Web qui ne fournissent pas de CSP.

L'implication ici est qu'une heuristique générique fonctionnant dans le navigateur est strictement moins efficace que les développeurs d'un site Web donné fournissant un CSP correctement implémenté indiquant quel contenu devrait être autorisé à s'exécuter sur leur page.


Il y a eu de nombreuses discussions, la dernière fin 2016 et nous étions arrivés à la conclusion qu'il ne valait actuellement pas la peine que Firefox fournisse une fonctionnalité intégrée:

Un filtre XSS ne peut pas protéger contre XSS ou DOM XSS stocké (ou persistant), qui est devenu de plus en plus répandu récemment.

Un filtre XSS est sujet à des failles de sécurité s'il n'est pas maintenu très diligemment et activement. Il est difficile de justifier le temps d'ingénierie de sécurité sur une fonctionnalité qui offre une valeur limitée.

Enfin, il existe un filtre XSS en NoScript que les gens peuvent utiliser.

Celui-ci parle un peu de lui-même que le filtre XSS n'est, en fin de compte, pas si efficace.

7
Mike Ounsworth