2016-06-03 3 views
0

Я создаю политику безопасности контента на RedHat 6 Apache 2.2 для некоторых html-файлов с ссылками JavaScript на Google. Я добавил следующий код виртуального хоста сайта в файле httpd.conf.Политика безопасности контента, не работающая с SHA256

Header always set Content-Security-Policy-Report-Only: "default-src 'self' https:; script-src 'self' https: https://www.google-analytics.com https://ajax.googleapis.com; style-src inline: 'self' https: 'sha256-j0bVhc2Wj58RJgvcJPevapx5zlVLw6ns6eYzK/hcA04=' https://www.google-analytics.com https://ajax.googleapis.com; font-src 'self'; img-src 'self' https: data: https://www.google-analytics.com; form-action 'self'; frame-ancestors 'none'; connect-src 'self' https: https://www.google-analytics.com; child-src 'self'" 

Невозможно заставить политику работать, если я не использую «небезопасный-встроенный», который я бы предпочел не делать. Последний браузер Chrome в режиме разработчика говорит, что я добавил SHA256 хэш, который я сделал (см. Ниже). Хотя я добавил рекомендуемый хэш SHA256, Chrome все еще просит меня добавить его ????

Я не правильно обрабатываю хэш SHA256? Любая помощь будет оценена.

От консоли разработчиков Chrome.

Отказался применить встроенный стиль, потому что он нарушает следующие Content директиву политики безопасности: "Стиль-Src инлайн: 'сам' https: 'sha256-j0bVhc2Wj58RJgvcJPevapx5zlVLw6ns6eYzK/hcA04 =' https://www.google-analytics.comhttps://ajax.googleapis.com". Либо ключевое слово «небезопасное-встроенное», хэш ('sha256-j0bVhc2Wj58RJgvcJPevapx5zlVLw6ns6eYzK/hcA04 ='), или для включения встроенного выполнения требуется nonce ('nonce -...').

ответ

0

EDIT: Это обсуждается в этой ошибке: https://bugs.chromium.org/p/chromium/issues/detail?id=546106 Не полностью после того, что говорит ошибка, но это, кажется, спецификация допускает только SHA256 хэш для сценария и стиля тегов, а не для встроенных скриптов и стилей. Похоже, вам нужно добавить атрибут «небезопасные хэшированные атрибуты» в вашу политику, чтобы он работал.

Однако не совсем ясно, если это только для исправления части скрипта или стилей, а также если оно было выпущено. Это определенно не будет сделано для устройств iOS, которые также используют WebKit, поэтому на данный момент я бы просто разрешил небезопасные встроенные стили.

ОРИГИНАЛЬНЫЙ ОТВЕТ (перед добавлением ответа был добавлен, но он оставил, чтобы избежать путаницы в качестве комментариев, добавленных ниже).

Я вижу несколько проблем:

  1. Ошибка упоминает содержимую политику безопасности, но ваш пример конфигурация является отчетом только заголовок. Я видел проблемы при использовании как Content-Security-Policy, так и Content-Security-Policy-Report-Only. Они должны быть независимыми, но нет. Возможно, стоит попробовать, чтобы никто не видел, если это проблема.
  2. Ваш источник стиль включает в себя inline:, который не является допустимым синтаксисом AFAIK
  3. Вы включаете общую https: директиву, а затем также конкретные сайты HTTPS (https://www.google-analytics.com https://ajax.googleapis.com)
+0

Мое предположение было бы # 2. Вероятно, он отказался от анализа директивы. – oreoshake

+0

Я пробовал это как с политикой безопасности контента, так и с Content-Security-Policy-Report-Only. Режим только для отчета позволяет вам перемещаться по сайту. Ошибки разработчиков Chrome одинаковы. – mTarkowski

+0

Спасибо за ваши предложения, но нет, они не являются проблемой. Подводя итог, я попытался использовать sha256 soo разными способами, и ответ Chrome всегда один и тот же. Сообщи мне, чтобы добавить тот же самый sha256, который уже есть! Это как если бы я пропустил какой-то тег, параметр, специальную цитату и т. Д. – mTarkowski

Смежные вопросы