web-dev-qa-db-fra.com

Politique de sécurité du contenu: les paramètres de la page bloquaient le chargement d'une ressource

J'utilise captcha lors du chargement de la page mais cela bloque pour des raisons de sécurité

Je suis confronté à un problème:

 Politique de sécurité du contenu: les paramètres de la page ont bloqué le chargement 
 d'une ressource à 
 http://www.google.com/recaptcha/api.js?onload=myCallBack&render=explicit 
 ("script-src http://test.com:8080 'unsafe-inline' 'unsafe-eval'")) .

J'ai utilisé les balises méta et js suivantes:

<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval'">
<script src="http://www.google.com/recaptcha/api.js?onload=myCallBack&render=explicit" async defer></script>
36
Shakti Sharma

Vous avez dit que vous ne pouvez charger des scripts qu'à partir de votre propre site (auto). Vous avez ensuite essayé de charger un script à partir d'un autre site (www.google.com) et, comme vous l'avez restreint, vous ne pouvez pas. C'est tout l'intérêt de la politique de sécurité du contenu (CSP).

Vous pouvez changer votre première ligne en:

<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval' http://www.google.com">

Sinon, il peut être intéressant de supprimer complètement cette ligne jusqu'à ce que vous en appreniez plus sur le CSP. Votre CSP actuel est quand même assez laxiste (autorisant unsafe-inline, unsafe-eval et un default-src de *), de sorte que vous n’ajoutez probablement pas trop de valeur pour être honnête.

38
Barry Pollard

Avoir un type d'erreur similaire. Tout d'abord, j'ai essayé d'ajouter les balises META dans le code, mais cela n'a pas fonctionné. 

J'ai découvert que sur le serveur Web nginx, vous pouvez avoir un paramètre de sécurité qui peut bloquer le code externe à exécuter:

#security directives
server_tokens off;
add_header X-Frame-Options SAMEORIGIN;
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";
add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'  https://ajax.googleapis.com  https://ssl.google-analytics.com https://assets.zendesk.com https://connect.facebook.net; img-src 'self' https://ssl.google-analytics.com https://s-static.ak.facebook.com https://assets.zendesk.com; style-src 'self' 'unsafe-inline' https://assets.zendesk.com; font-src 'self' https://fonts.gstatic.com  https://themes.googleusercontent.com; frame-src https://player.vimeo.com https://assets.zendesk.com https://www.facebook.com https://s-static.ak.facebook.com https://tautt.zendesk.com; object-src 'none'";

Vérifiez la politique de sécurité du contenu, vous devrez peut-être ajouter la référence source.

3
aCustica