У меня есть веб-сайт ASP.NET MVC с сильно настроенным бэкэндом Umbraco 6 в качестве CMS сайта.
Я обновлял заголовки политики безопасности контента (CSP) по всему сайту, что я и делаю с помощью NWebsec, и теперь веб-сайт с радостью использует строгую динамику CSP 3, и на каждомтег сценария, и все работает отлично.
К сожалению, я не смог применить те же изменения в административной области Umbraco, поэтому большинство из них не работает вообще.
Итак, я хочу применить строгую политику CSP 3 к общедоступным частям веб-сайта и применить смягченную политику CSP к закрытой административной области.
Область администратора Umbraco находится в подкаталоге / umbraco /, поэтому я подумал, что лучший способ реализовать это - использовать два разных элемента местоположения в файле Web.config сайта.
Так что мой Web.config теперь выглядит примерно так::
<!-- Specific CSP for Umbraco -->
<location path="~/umbraco">
<nwebsec>
...
<content-Security-Policy enabled="true">
...
<script-src self="true" unsafeInline="true" unsafeEval="true">
<add source="data:" />
</script-src>
...
</content-Security-Policy>
</nwebsec>
</location>
<!-- default CSP for everything else -->
<location path=".">
<nwebsec>
...
<content-Security-Policy enabled="true">
...
<script-src self="true" unsafeInline="true" unsafeEval="false" strictDynamic="true">
</script-src>
...
</content-Security-Policy>
</nwebsec>
</location>
Но это относится к конфигурации по умолчанию ко всему сайту.
Я не уверен, что у меня неправильная конфигурация, или, может быть, NWebSec не поддерживает то, что япытаюсь сделать, или есть какая-то конкретная проблема с перенаправлениями или что-то еще.