Политика безопасности контента: настройки страницы заблокировали загрузку ресурса на себя?
У меня есть Java-приложение, работающее на Tomcat 6. Мое приложение работает на localhost и Порту 9001.
Чтобы сделать мое приложение более безопасным и уменьшить риск атак XSS, я добавил Заголовок Content-Security-Policy
со значением default-src * 'unsafe-inline' 'unsafe-eval';script-src 'self'. С помощью этого я хочу Разрешить веб-приложению загружать файлы JavaScript из того же домена.
Для других ресурсов он продолжает загружаться в том же мода, как это было без этого заголовка.
Но я получаю ошибку ниже.
Content Security Policy: The page's settings blocked the loading of a resource at self ("script-src http://localhost:9001").
2 ответа:
Заголовок политики безопасности содержимого представляет собой белый список надежных источников.
Список
default-src
- это список, используемый всеми другими списками*-src
. Если его нет, то по умолчанию используетсяdefault-src: *
, Что означает "все содержимое разрешено из любого места", что не обеспечивает никакой защиты от XSS.Поэтому вы должны начать с
default-src none
, так что все содержание будет запрещено, илиdefault-src 'self'
, так что разрешен только контент из вашего домена.После этого другие
*-src
могут быть заменены по мере необходимости. Например, следующее доверяет себе для всего, кроме изображений, а изображения разрешены только от example.com (но не от "Я"):default-src 'self'; img-src example.com;
В своем вопросе вы указываете
default-src * 'unsafe-inline' 'unsafe-eval';
, что может вызвать проблему, поскольку*
уже подразумевает'unsafe-inline'
и'unsafe-eval'
. Это все равно что сказать: "разрешите все, разрешите встроенное и разрешите эвал".Также обратите внимание, что CSP поддерживается через
X-Content-Security-Header
в IE >= 8.Источники: