![How Does Content Security Policy (CSP) Prevent XSS Attacks?](https://img.php.cn/upload/article/000/000/000/173130516761856.jpg)
Fonctionnement de la politique de sécurité du contenu (CSP)
Confondu par des erreurs telles que "Refusé d'évaluer une chaîne" et "Refusé d'exécuter un script en ligne " ? Examinons le fonctionnement de la politique de sécurité du contenu (CSP), une mesure de sécurité cruciale qui protège contre les attaques XSS.
Concept de base
CSP restreint l'endroit où les ressources peuvent être chargées de, empêchant les navigateurs de récupérer des données provenant de sources non autorisées. En définissant les sources autorisées, CSP réduit le risque d'injection de code malveillant.
Ajout de directives CSP
CSP est implémenté à l'aide de l'en-tête HTTP Content-Security-Policy, qui contient des directives qui définissent les origines et les politiques autorisées. Un exemple simple serait :
<meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self' https://example.com;">
Directives
Les directives les plus courantes incluent :
- default-src : stratégie par défaut pour toutes les ressources à l'exception des scripts, des images et des requêtes AJAX.
- script-src : définit les sources valides pour scripts.
- style-src : définit des sources valides pour les feuilles de style.
- img-src : définit des sources valides pour les images.
- connect-src : définit des cibles valides pour les requêtes AJAX , WebSockets et EventSource.
Sources multiples et Directives
- Autoriser plusieurs sources en les répertoriant sous forme de liste séparée par des espaces dans la directive, par exemple : default-src 'self' https://example.com/js/.
- Utilisez plusieurs directives en les séparant par des points-virgules dans la même balise, par exemple : content="default-src 'self'; script-src 'self'".
Gestion des protocoles et des ports
- Spécifiez explicitement les ports en les ajoutant au domaine autorisé, par exemple : default-src ' self' https://example.com:8080.
- Autoriser tous les ports en utilisant un astérisque, par exemple : default-src 'self' https://example.com:*.
- Pour autoriser le protocole de fichier, utilisez le paramètre filesystem, par exemple : default-src 'self' filesystem:.
Scripts et styles en ligne
- Par défaut, le contenu en ligne est bloqué. Pour l'autoriser, utilisez le paramètre 'unsafe-inline', par exemple : script-src 'unsafe-inline'.
Autoriser 'eval()'
- Utilisez le paramètre 'unsafe-eval' pour autoriser l'exécution de 'eval()', par exemple : script-src 'unsafe-eval'.
'Self' Signification
- 'Self' fait référence aux ressources avec le même protocole, le même hôte et le même port que la page où la politique est définie.
Adressage du 'default-src *' Vulnérabilité
Bien qu'autoriser toutes les sources (default-src *) puisse sembler pratique, il n'est pas sécurisé et n'autorise pas réellement le contenu ou l'évaluation en ligne. Évitez de l'utiliser.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!
Déclaration:Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn