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

Вопрос о том, чтобы CSP обслужили дважды:

Каково поведение, если одна политика обслуживается через заголовок ответа HTTP Content-Security-Policy, а также другая политика, указанная с элементом <meta />?

Будут ли эти двое как-то объединены? Или какой из них имеет приоритет? (Я не могу найти четкую информацию об этом в спецификации).

Конкретный вариант использования может служить Report-to через заголовок ответа HTTP и помещать все другие ограничения в элемент <meta /> - потому что некоторые из них генерируются веб-пакетом - и если мне не стоит беспокоиться о <meta /> не поддерживается политикой заголовка ответа HTTP.

Ответы [ 2 ]

0 голосов
/ 21 июня 2019

Как вы обнаружили, да, они объединяются, если вы все делаете правильно. Однако я хочу добавить, что по возможности следует избегать использования метатегов с заголовками CSP.

Почему? Он идет вразрез со спецификацией и духом «заголовков CSP», поэтому некоторые функции не будут работать: «Примечание. Заголовок Content-Security-Policy-Report-Only не поддерживается внутри метаэлемента. Также как report-uri, предки фреймов и директивы песочницы. "

Компаниям очень трудно внедрить CSP безопасным способом, не ломая при этом свой веб-сайт и не требуя больших переделок. Вот почему я создал Enchanted Security , политику безопасности виртуального контента, которая работает, проверяя сетевые запросы, сделанные на странице, чтобы отслеживать их и блокировать вредоносные запросы. Настроить его гораздо проще, чем CSP, и у него есть возможности, которые вы не можете получить от CSP.

0 голосов
/ 03 июля 2018

Если у вас есть директивы CSP, указанные как в заголовке HTTP Content-Security-Policy, так и в элементе meta, браузер использует самые строгие директивы CSP, где бы они ни были указаны.

См. Подробности о нескольких политиках в https://w3c.github.io/webappsec-csp/#multiple-policies и подробности об использовании элемента meta в https://w3c.github.io/webappsec-csp/#meta-element:

Примечание. Политика, указанная с помощью элемента meta, будет применяться с любыми другими политиками, активными для защищенного ресурса, независимо где они указаны. Общее влияние принудительного применения нескольких политики описаны в §8.1 Эффект нескольких политик .

8,1. Эффект нескольких политик

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

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