Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 32621|Répondre: 2

[Vulnérabilité de sécurité] Vulnérabilités manquantes ou non sécurisées dans l’en-tête « Politique-Sécurité du Contenu »

[Copié le lien]
Publié sur 11/06/2021 10:36:39 | | | |
L’en-tête de réponse HTTP Content-Security-Policy permet au site de contrôler quelles ressources l’agent utilisateur charge pour une page donnée. Sauf dans des cas particuliers, l’ensemble de politiques consiste principalement à spécifier les points d’origine et de script du serveur. Cela aidera à stopper les attaques cross-site scripting

Documentation:La connexion hyperlientérée est visible.

Cet article décrit la politique de sécurité des contenus du W3C, ou CSP en abrégé. Comme son nom l’indique, cette spécification est liée à la sécurité du contenu et sert principalement à définir quelles ressources une page peut charger et à réduire la présence de XSS.

Les premiers Chrome prenaient en charge le CSP via l’en-tête de réponse X-WebKit-CSP, tandis que Firefox et IE prenaient en charge X-Content-Security-Policy, et Chrome25 et Firefox23 ont commencé à prendre en charge la politique standard Content-Security-Policy.

Des informations sensibles concernant les applications web, telles que les noms d’utilisateur, mots de passe, noms de machines et/ou emplacements de fichiers sensibles, peuvent être collectées
Les utilisateurs débutants peuvent être persuadés de fournir des informations sensibles telles que des noms d’utilisateur, mots de passe, numéros de carte bancaire, numéros de sécurité sociale, etc


D’abord, créons un nouveau projet ASP.NET MVC, créons un nouveau script js, et chargeons dynamiquement le code js des statistiques Baidu, comme suit :




Comme montré dans la figure ci-dessus, on peut voir le code de script JS qui a été introduit avec succès dans un tiers (Baidu), s’il y a du code malveillant dans le JS tiers, comme le vol de cookies, la modification de contenu, le saut de liens, etc.

Comment puis-je empêcher l’introduction de scripts JS tiers peu sécurisés ?

Solution de contournement

Tête de réponseAjouter « Politique-Sécurité-Contenu »par exemple:

Content-Security-Policy: default-src 'self' La connexion hyperlientérée est visible.;
                         connect-src « aucun(ne) » ;
Content-Security-Policy: connect-src La connexion hyperlientérée est visible.
                         script-srcLa connexion hyperlientérée est visible.

Directive
Exemple de valeur d’instruction
illustrer
par défaut-src
« soi » cnd.a.com
Définissez la politique de chargement par défaut pour tous les types de ressources (JS, IMAGE, CSS, WEB FONT, REQUÊTES AJAX, IFRAMES, MULTIMÉDIA, ETC.), et utilisez la politique par défaut pour certains types de ressources s’il n’y a pas de politique distincte définie.
script-src
« soi » js.a.com
Définissez une politique de chargement pour JavaScript.
style-src
« soi » css.a.com
Définissez une politique de chargement pour un style.
IMG-SRC
« soi » img.a.com
Définissez une politique de chargement pour les images.
connect-src
« Moi »
Chargement des politiques pour les requêtes depuis Ajax, WebSockets, etc. Si ce n’est pas autorisé, le navigateur simule une réponse avec un statut de 400.
font-src
font.a.com
Politique de chargement pour WebFont.
object-src
« Moi »
<object><embed> <applet> Politiques de chargement pour des plugins tels que Flash introduites pour des balises telles que , ou .
Media-SRC
media.a.com
<audio> <video> Stratégies de chargement pour le multimédia HTML introduites pour des balises telles que ou .
Frame-SRC
« Moi »
Politique de chargement des trames.
Bac à sable
Formes permises
Activez le bac à sable (similaire à la propriété bac à sable d’un iframe) pour la ressource demandée.
Report-uri
/report-uri
Indiquez au navigateur à quelle adresse soumettre les informations de journal si la ressource demandée n’est pas autorisée par la politique. Spécial : Si vous souhaitez que le navigateur ne rapporte que les journaux sans bloquer quoi que ce soit, vous pouvez utiliser l’en-tête Content-Security-Policy-Report-Only à la place.

Modifions le fichier web.config du projet pour ajouter un en-tête de réponse personnalisé comme suit :

Relancez le projet comme montré ci-dessous :



Le navigateur a réussi à bloquer le chargement des scripts js tiers :

Refusé de charger le script 'https://hm.baidu.com/hm.js?6dbaac17dfeb2840b5b09d2dff6d2319' car il viole la directive suivante de la politique de sécurité du contenu : « script-src 'self' http://localhost:56888/ ». Notez que « script-src-elem » n’a pas été explicitement défini, donc « script-src » est utilisé comme solution de secours.
(Fin)




Précédent:ASP.NET Ordre d’exécution de MVC HttpApplication
Prochain:Pour résumer la populaire encyclopédie User-Agent du navigateur
Publié sur 17/12/2021 22:38:43 |
Apprends !!!!!!!!!!!!!!
Publié sur 18/10/2022 17:16:34 |
Je cherche depuis longtemps et j’apprends un peu
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com