Ich verwende CAPTCHA beim Laden von Seiten, aber es wird aus Sicherheitsgründen blockiert.
Ich stehe vor diesem Problem:
Inhaltssicherheitsrichtlinie: Die Einstellungen der Seite haben das Laden blockiert einer Ressource bei http://www.google.com/recaptcha/api.js?onload=myCallBack&render=explicit ("script-src http://test.com:8080 'unsicher-inline' 'unsicher-eval'").
Ich habe das folgende JavaScript und Meta-Tag verwendet:
<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>
javascript
jquery
content-security-policy
Shakti Sharma
quelle
quelle
javascript
dieser Frage ein Tag hinzugefügt , da die Frage nichts mit jQuery zu tun hat. Es betrifft jedes JavaScript. Tatsächlich wäre die Frage nützlicher, wenn Sie dasjQuery
Tag vollständig entfernen , aber es ist nicht meine Aufgabe, dies zu tun.Antworten:
Sie haben gesagt, Sie können nur Skripte von Ihrer eigenen Site (selbst) laden. Sie haben dann versucht, ein Skript von einer anderen Website ( www.google.com ) zu laden, und können dies nicht, da Sie dies eingeschränkt haben. Das ist der springende Punkt der Content Security Policy (CSP).
Sie können Ihre erste Zeile ändern in:
<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">
Alternativ kann es sich lohnen, diese Zeile vollständig zu entfernen, bis Sie mehr über CSP erfahren. Ihre aktuellen CSP ist ziemlich lax sowieso (erlaubt
unsafe-inline
,unsafe-eval
und eindefault-src
von*
), so ist es wahrscheinlich nicht zu viel Wert hinzufügen, um ehrlich zu sein.quelle
Wenn mein ASP.NET Core Angular- Projekt in Visual Studio 2019 ausgeführt wird, wird manchmal die folgende Fehlermeldung in der Firefox-Konsole angezeigt:
In Chrome lautet die Fehlermeldung stattdessen:
In meinem Fall hatte dies nichts mit meiner Inhaltssicherheitsrichtlinie zu tun, sondern war einfach das Ergebnis eines TypeScript-Fehlers meinerseits.
Überprüfen Sie Ihr IDE-Ausgabefenster auf einen TypeScript-Fehler wie:
> ERROR in src/app/shared/models/person.model.ts(8,20): error TS2304: Cannot find name 'bool'. > > i 「wdm」: Failed to compile.
Hinweis: Da diese Frage das erste Ergebnis bei Google für diese Fehlermeldung ist.
quelle
Ich hatte einen ähnlichen Fehlertyp. Zuerst habe ich versucht, die Meta-Tags in den Code einzufügen, aber es hat nicht funktioniert.
Ich habe herausgefunden, dass Sie auf dem nginx-Webserver möglicherweise eine Sicherheitseinstellung haben, die die Ausführung von externem Code blockiert:
# 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'";
Überprüfen Sie die Content-Security-Policy. Möglicherweise müssen Sie die Quellreferenz hinzufügen.
quelle
Ich habe es geschafft, alle meine erforderlichen Sites mit diesem Header zuzulassen:
header("Content-Security-Policy: default-src *; style-src 'self' 'unsafe-inline'; font-src 'self' data:; script-src 'self' 'unsafe-inline' 'unsafe-eval' stackexchange.com");
quelle
Ich habe dies umgangen, indem ich sowohl die von mir verwendete Version von Angular (von Version 8 -> Version 9) als auch die Version von TypeScript (von Version 3.5.3 -> Version) aktualisiert habe.
quelle
Sie können sie in Ihrem Browser deaktivieren.
Feuerfuchs
Geben Sie
about:config
die Firefox-Adressleiste ein und suchen Sie siesecurity.csp.enable
und setzen Sie sie auffalse
.Chrom
Sie können die aufgerufene Erweiterung installieren
Disable Content-Security-Policy
, um CSP zu deaktivieren.quelle