#http-headers #content-security-policy #lighttpd
Вопрос:
Я использую сервер lighttpd/1.4.53. Я хочу добавить заголовок HTTP «Политика безопасности содержимого» для моего сервера. У меня есть несколько вопросов, связанных с этим:
- Как следует из документации этого заголовка, большинство директив основаны на домене. Например,
Content-Security-Policy: default-src 'self'; script-src *.example.com;
есть ли способ сделать этот IP-адрес основанным? Или мы можем заставить «себя» учитывать собственный IP-адрес сервера? - Как проверить версию CSP, используемую браузером и сервером? Использует ли CSP ту же версию, что и сам родительский протокол HTTP?
Документация: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/default-src
Ответ №1:
большинство директив основаны на домене … Есть ли способ сделать этот IP-адрес основанным?
Спецификация CSP не позволяет использовать IP, кроме 127.0.0.1, см. раздел «Совпадающие хосты«. Хотя Chrome и Firefox поддерживают IPv4-адреса в качестве источников хоста.
можем ли мы заставить «себя» учитывать собственный IP-адрес сервера
Нет никакого способа сделать это. Кроме того, невозможно сделать SSL-сертификат для IP-адресов, поэтому HTTPS не будет работать.
Как проверить версию CSP, используемую браузером и сервером?
Поддержка директив и функций различных версий CSP постепенно внедряется браузерами. Таким образом, нет четко определенной границы между браузерами CSP2 и CSP3.
Некоторые браузеры частично поддерживают CSP3, но не реализовали некоторые элементы CSP2.
Использует ли CSP ту же версию, что и сам родительский протокол HTTP?
Нет никакой связи между протоколом HTTP и версией CSP.
Комментарии:
1. Спасибо. Так нужно ли нам беспокоиться о том, совпадают ли версии CSP сервера и браузеров?
2. Сервер не имеет версии CSP, он просто отправляет строку заголовка CSP (именно то, что вы там написали). Некоторые браузеры могут не понимать некоторые директивы/токены в этом заголовке. В таких случаях CSP может быть выполнен в режиме обратной совместимости браузера.