it-swarm.com.ru

Отказался от загрузки сценария, поскольку он нарушает следующую директиву политики безопасности содержимого: "style-src 'self' 'unsafe-inline'

Я использую MVC6 (asp.net 5), использую angular и ​​пытаюсь загрузить сценарии из местоположений CDN, когда мой код работает в режиме выпуска, но по какой-то причине сценарии НИКОГДА не загружаются.

Я прочитал, что вам нужно добавить метатег в ваш HTML-файл, что я и сделал, вот так.

<meta http-equiv="Content-Security-Policy" content="default-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' https://cdnjs.cloudflare.com; style-src 'self' https://ajax.aspnetcdn.com; font-src 'self' http://netdna.bootstrapcdn.com" />

И в моем Index.cshtml я получил это.

<environment names="Staging,Production">
    <script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.8/angular.min.js"
        asp-fallback-src="~/lib/angular/angular.min.js"
        asp-fallback-test="window.angular">
    </script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-router/0.2.15/angular-ui-router.min.js"
        asp-fallback-src="~/lib/angular-ui-router/release/angular-ui-router.js"
        asp-fallback-test="window.angular && window.angularUiRouter">
    </script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/angular-local-storage/0.2.2/angular-local-storage.min.js"
        asp-fallback-src="~/lib/angular-local-storage/dist/angular-local-storage.js"
        asp-fallback-test="window.angular && window.localStorage">
    </script>

Но они никогда не загружаются. Я попытался запустить код с помощью IISExpress, а также с помощью команды DNX Web.

У меня есть это сообщение о том, как я пришел к созданию тега META, но не уверен, почему он не работает. Я пробовал это в Chrome, и под консолью я просто получаю сообщения об ошибках

enter image description here

10
Gillardo

Поместите следующее в заголовок веб-страницы:

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

Подробнее о политике безопасности контента вы можете прочитать здесь и здесь .

4
drcolombo

Если вы хотите обойти эту проблему, добавьте в файл application.conf следующее.

play.filters.disabled += "play.filters.headers.SecurityHeadersFilter"
1
edc

В моем случае эта политика устанавливается через SecurityHeadersAttribute (этот атрибут устанавливается в AccountController и некоторых других).

По сути, это добавляет политику по умолчанию в headers, которая перезаписывает ваш тег meta. Поэтому вам нужно изменить эту политику или удалить атрибут из контроллера.

0
Vadym Kyrylkov