Директивы на основе IP для заголовка Политики безопасности контента

#http-headers #content-security-policy #lighttpd

Вопрос:

Я использую сервер lighttpd/1.4.53. Я хочу добавить заголовок HTTP «Политика безопасности содержимого» для моего сервера. У меня есть несколько вопросов, связанных с этим:

  1. Как следует из документации этого заголовка, большинство директив основаны на домене. Например, Content-Security-Policy: default-src 'self'; script-src *.example.com; есть ли способ сделать этот IP-адрес основанным? Или мы можем заставить «себя» учитывать собственный IP-адрес сервера?
  2. Как проверить версию 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 может быть выполнен в режиме обратной совместимости браузера.