В политике безопасности контента более конкретные значения полностью заменяют общие?

#content-security-policy

#content-security-policy

Вопрос:

Я просмотрел несколько ссылок CSP, в том числе очень хорошую на developer.mozilla.org , но не могу найти ответа на этот вопрос: предположим, я хочу разрешить все от self и *.facebook.com , но только скрипты из *.googleapis.com . Должен ли я повторять self и *.facebook.com в script-src?

Другими словами, достаточно ли этого?

 Content-Security-Policy default-src 'self' *.facebook.com; script-src *.googleapis.com;
  

Или мне нужно указать:

 Content-Security-Policy default-src 'self' *.facebook.com; script-src 'self' *.facebook.com *.googleapis.com;
  

Ответ №1:

Ваш второй вариант правильный:

 Content-Security-Policy
   default-src 'self' *.facebook.com;
   script-src 'self' *.facebook.com *.googleapis.com;
  

Когда вы указываете script-src директиву в политике, браузер вообще не использует какие-либо источники из default-src скриптов for (не выполняет резервное default-src копирование). script-src Будут использоваться только источники из.

Поэтому, если ваше приложение загружает скрипты из 'self' и *.facebook.com , вы должны указать их script-src независимо от default-src содержимого.