Этот метод применения политики безопасности контента в порядке? - PullRequest
0 голосов
/ 28 августа 2018

Я пытаюсь добавить CSP в свое веб-приложение, я добавил следующий метатег на моей странице индекса:

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

, а также следующий мой файл my web.config на IIS:

<customHeaders>
     <add name="Content-Security-Policy" value="default-src 'self' 'unsafe-inline' http://*.domain.com;
                                                img-src 'self' http://*.domain.com data:"  />

      </customHeaders>

Необходимо ли добавлять метатег и дополнительные заголовки? или одного из них достаточно?

Переопределяет ли политика метатегов пользовательский заголовок?

Означает ли это script-src 'self' http://* 'unsafe-inline' 'unsafe-eval', что я могу написать встроенный JavaScript и использовать функцию eval внутри своего кода? Это правило переопределяет политику, установленную заголовками? (потому что, насколько я знаю в заголовках, я запретил использование встроенного JavaScript и функции eval)

И мой последний вопрос: если я использую эти настройки, я должен использовать ng-csp или другой его вариант ng-csp="no-unsafe-eval" в моем html?

1 Ответ

0 голосов
/ 29 августа 2018

Необходимо ли добавлять метатег и дополнительные заголовки? или одного из них достаточно?

Достаточно одного. Если вы можете заставить свой сервер отправлять политику в заголовке ответа, это лучше. Вам также не нужно указывать что-либо в элементе meta, и это не дает никаких преимуществ.

Переопределяет ли политика метатегов пользовательский заголовок?

Политика meta переопределит политику заголовка, только если политика meta будет более строгой. Смотрите этот ответ:

Что происходит, когда у меня есть две политики CSP (Content Security Policies) - header и meta?

… который ссылается на часть CSP, которая гласит: «добавление дополнительных политик в список применяемых политик может только еще больше ограничить возможности защищаемого ресурса» .

Означает ли это script-src 'self' http://* 'unsafe-inline' 'unsafe-eval', что я могу написать встроенный JavaScript и использовать функцию eval внутри своего кода?

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

Заменяет ли это правило политику, установленную заголовками? (потому что, насколько я знаю в заголовках, я запретил использование встроенного JavaScript и функции eval)

Нет, поскольку Что происходит, когда у меня есть две политики CSP (Content Security Policies) - header и meta? объясняет, что вы не можете переопределить строгую политику, указав менее строгую политику в другом месте.

Так что лучше всего указывать все значения политики в одном месте, в заголовке (вместо meta).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...