Совместима ли политика безопасности контента?

Если script-src: hash-source используется в браузере, который не понимает hash-source, будет ли браузер игнорировать все script-src: или даже весь CSP? Или он будет игнорировать только часть hash-source?

В более общем смысле браузеры реализуют CSP в режиме прямой совместимости?

7 голосов | спросил Jonas H. 8 ThuEurope/Moscow2016-12-08T11:19:24+03:00Europe/Moscow12bEurope/MoscowThu, 08 Dec 2016 11:19:24 +0300 2016, 11:19:24

2 ответа


0

То, что ореошейк сказал о обратной совместимости, является точным. Процесс определения соответствия элемента описан в разделе 6.6.2.2 CSP. черновик стандарта : при наличии hash-source или nonce-source, unsafe-inline игнорируется соответствующими агентами пользователя:

  

Исходный список допускает все встроенное поведение данного типа, если он содержит выражение ключевое слово-источник «unsafe-inline», и не переопределяет это выражение, как описано в следующем алгоритме:

     

[...]

     

Если выражение соответствует грамматике nonce-source или hash-source, верните "Not Not Allow".

Кроме того, CSP 2 определяет процесс парсинга списка источников с неизвестным токены следующим образом:

  

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

В противном случае его следует игнорировать. Ясно, что авторы предполагали, по крайней мере, определенный уровень прямой совместимости.

ответил Niklas B. 21 WedEurope/Moscow2016-12-21T19:26:15+03:00Europe/Moscow12bEurope/MoscowWed, 21 Dec 2016 19:26:15 +0300 2016, 19:26:15
0

Браузеры, которые не понимают элементы источника хеш-функции, могут выдавать предупреждение в консоли, но могут и не отображать. Рекомендуемый подход состоит в том, чтобы использовать сниффинг пользовательского агента для обнаружения поддержки или отправить оба 'unsafe-inline' со своими исходными значениями хеша.

Пользовательские агенты, которые понимают источники хэшей, будут игнорировать 'unsafe-inline', а агенты, которые не обратятся к 'unsafe-inline'. Так что он обратно совместим.

ответил oreoshake 8 ThuEurope/Moscow2016-12-08T21:59:17+03:00Europe/Moscow12bEurope/MoscowThu, 08 Dec 2016 21:59:17 +0300 2016, 21:59:17

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132