Политика безопасности содержимого: параметры страницы блокировали загрузку ресурса
Я использую captcha на загрузке страницы, но он блокируется из-за некоторой причины безопасности
Я столкнулся с проблемой:
Content Security Policy: The page settings blocked the loading
of a resource at
http://www.google.com/recaptcha/api.js?onload=myCallBack&render=explicit
("script-src http://test.com:8080 'unsafe-inline' 'unsafe-eval'").
Я использовал следующие js и метатеги:
<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>
Ответы
Ответ 1
Вы сказали, что можете загружать скрипты только с вашего собственного сайта (самостоятельно). Затем вы попытались загрузить скрипт с другого сайта (www.google.com), и, поскольку вы ограничили это, вы не можете. В этом весь смысл политики безопасности контента (CSP).
Вы можете изменить свою первую строку на:
<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">
Или же, возможно, стоит полностью удалить эту строку, пока вы не узнаете больше о CSP. Ваш текущий CSP в любом случае довольно слаб (допускает использование unsafe-inline
, unsafe-eval
и default-src
по default-src
*
), так что, вероятно, не стоит добавлять слишком много значения, чтобы быть честным.
Ответ 2
Наличие аналогичного типа ошибки. Сначала я попытался добавить метатеги в код, но это не сработало.
Я обнаружил, что на веб-сервере nginx у вас может быть параметр безопасности, который может блокировать запуск внешнего кода:
#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'";
Проверьте Content-Security-Policy, вам может понадобиться добавить ссылку на источник.
Ответ 3
Поскольку этот вопрос является первым результатом поиска этого сообщения об ошибке в Google, я добавлю его сюда.
Когда мой проект ASP.NET Core Angular запущен в Visual Studio 2019, иногда я получаю следующее сообщение об ошибке в консоли Firefox:
Политика безопасности контента. Настройки страниц блокировали загрузку ресурса при подключении ("default-src").
В Chrome вместо этого появляется сообщение об ошибке:
Не удалось загрузить ресурс: сервер ответил со статусом 404()
В моем случае это не имело никакого отношения к моей Политике безопасности контента, а было просто результатом ошибки TypeScript с моей стороны.
Проверьте окно вывода IDE на наличие ошибки TS, например:
> ERROR in src/app/shared/models/person.model.ts(8,20): error TS2304: Cannot find name 'bool'.
>
> i 「wdm」: Failed to compile.
Ответ 4
Вы можете отключить их в своем браузере. Fire Fox
Введите about:config
в адресную строку FireFox, найдите security.csp.enable
и установите для него значение false
Chrome Вы можете установить расширение под названием " Disable Content-Security-Policy
чтобы отключить CSP.