Quel est le but de l’atsortingbut HTML «nonce» pour les éléments de script et de style?

W3C dit qu’il existe un nouvel atsortingbut dans HTML5.1 appelé nonce pour le style et le script qui peut être utilisé par la politique de sécurité du contenu d’un site Web.

Je l’ai googlé à ce sujet, mais finalement, je n’ai pas compris ce que fait réellement cet atsortingbut et ce qui change quand on l’utilise?

L’atsortingbut nonce permet de “mettre en liste blanche” certains éléments de script et de style , tout en évitant d’utiliser la directive CSP unsafe-inline (qui autoriserait tous les script / style ). / style en général.

Ainsi, l’atsortingbut nonce est un moyen de dire aux navigateurs que le contenu en ligne d’un script ou d’un élément de style particulier n’a pas été injecté dans le document par une tierce partie (malveillante). servi de.

https://developers.google.com/web/fundamentals/security/csp/#if_you_absolutely_must_use_it donne un bon exemple d’utilisation de l’atsortingbut nonce , qui comprend les étapes suivantes:

  1. Pour chaque requête reçue par votre serveur Web pour un document particulier, votre système dorsal doit générer une chaîne aléatoire de base 64 encodée d’au moins 128 bits de données à partir d’un générateur de nombres aléatoires sécurisé sur le plan cryptographique. par exemple, EDNnf03nceIOfn39fn3e9h3sdfa . C’est ton nonce.

  2. Prenez le nonce généré à l’étape 1 et, pour tout script / style vous souhaitez append, insérez un atsortingbut nonce dans le document avant qu’il ne soit envoyé sur le réseau, avec cette valeur comme valeur:

      
  3. Prenez le nonce généré à l’étape 1, nonce- y un nonce- et faites en sorte que votre backend génère un en-tête CSP avec les valeurs de la liste source pour script-src ou style-src :

     Content-Security-Policy: script-src 'nonce-EDNnf03nceIOfn39fn3e9h3sdfa' 

Ainsi, le mécanisme d’utilisation d’un nonce est une alternative à la création d’un hachage du contenu du script ou du style vous souhaitez autoriser, puis en spécifiant ce hachage dans la liste source appropriée de votre en-tête CSP.

Notez que parce que les navigateurs ne vérifient pas (ou ne peuvent pas) vérifier que la valeur de nonce a changé entre les requêtes de page, il est possible, bien que totalement déconseillé, de sauter 1 ci-dessus et de ne rien faire dynamicment pour le nonce. pourrait simplement mettre un atsortingbut nonce avec une valeur statique dans la source HTML de votre doc et envoyer un en-tête CSP statique avec cette même valeur de nonce.

Mais la raison pour laquelle vous ne voudriez pas utiliser un nonce statique de cette manière est que cela va à l’encontre du but de l’utilisation du nonce, car si vous deviez utiliser un nonce statique comme ça, à ce stade, vous pourriez tout aussi bien utiliser unsafe-inline .