Заголовок Apache Content-Security-Policy (CSP) в .htaccess, как разрешить подстановочный знак для нескольких доменов?

  • Автор темы ВладПрокуров
  • 47
  • Обновлено
  • 17, May 2024
  • #1
Привет, эта страница (https://securityheaders.io

) сообщил мне, что на моем сайте не установлена политика безопасности контента (CSP).

Я хотел это исправить, поэтому погуглил, как настроить CSP в случае сервера Apache + cPanel (google: генератор политики безопасности контента Apache) Я нашел здесь (https://content-security-policy.com/

), что можно отредактировать файл .htaccess и добавить строку: Заголовок устанавливает Content-Security-Policy что-то там
Вот

упоминалось, что можно определить CSP в метатеге заголовка HTML. Или используйте более продвинутый скрипт с отчетами по электронной почте: https://gist.github.com/phpdave/24d879514e7411047267

Я попробовал несколько примеров, которые нашел, но ни один из них не сработал.

Он всегда отключал все внешние элементы моего сайта, хотя я пытался разрешить их: ajax.cloudflare.com *.sharebutton.net *.cjshare.com *.cleverjump.org *.jsdelivr.net *.google.com *.tawk.to *.twitter.com
 

Header set Content-Security-Policy "default-src 'self' ajax.cloudflare.com *.sharebutton.net *.cjshare.com *.cleverjump.org *.jsdelivr.net *.google.com *.tawk.to *.twitter.com"

Header set Content-Security-Policy "default-src 'self'; script-src 'self' ajax.cloudflare.com *.sharebutton.net *.cjshare.com *.cleverjump.org *.jsdelivr.net *.google.com *.tawk.to *.twitter.com"

Header set Content-Security-Policy "default-src 'self' 'unsafe-inline' ajax.cloudflare.com sharebutton.net cjshare.com cleverjump.org jsdelivr.net google.com *.tawk.to twitter.com"

Header set Content-Security-Policy "default-src 'self'; script-src 'self' http://*tawk.to https://*.cloudflare.com 'unsafe-inline'"



Код (разметка): мой сайт находится за Cloudflare, но когда я очищаю кеш Cloudflare и перезагружаю сайт Ctrl+F5, никакие внешние элементы, такие как окно чата или виджеты, не появляются, когда CSP находится в .htaccess.

когда я удаляю строку CSP из htaccess, они (окно чата и другие элементы внешних страниц) начинают появляться.

Итак, пожалуйста, как должно выглядеть правило CSP, разрешающее только локальные элементы и элементы внешнего сайта, о которых я упоминал выше? Спасибо

ВладПрокуров


Рег
13 Apr, 2011

Тем
1

Постов
3

Баллов
13
  • 09, Jun 2024
  • #2
Это «правило» .htaccess работает:
 Header always set Content-Security-Policy "default-src 'self' *.google-analytics.com; script-src 'self' 'unsafe-inline' 'unsafe-eval' *.google-analytics.com; style-src 'self' 'unsafe-inline'; img-src data: *; object-src 'none'"
Код (разметка): вы можете заметить, что иногда мне приходилось вводить префикс https://. Я бы посоветовал удалить из правила все пользовательские домены:
 Header always set Content-Security-Policy "default-src 'self' *.tawk.to *.cloudflare.com *.google-analytics.com wss://*.tawk.to; script-src 'self' 'unsafe-inline' 'unsafe-eval' *.tawk.to *.cloudflare.com *.google-analytics.com wss://*.tawk.to [URL='https://lumtu.com/yti/bwYYwb21odHRwczovL2Nqc2hhcmUumch']https://cjshare.com[/URL] *.cjshare.com *.cleverjump.org *.jsdelivr.net [URL='https://lumtu.com/yti/Z4mm4ZXRodHRwczovL3NoYXJlYnV0dG9uL9Gd']https://sharebutton.net[/URL] *.sharebutton.net; style-src 'self' 'unsafe-inline' *.jsdelivr.net; img-src data: *; object-src 'none'"
Код (разметка): перезагрузка сайта в веб-браузере, когда консоль разработчика веб-браузера открыта, и можно увидеть советы и ошибки, если некоторые элементы были заблокированы CSP.

а затем прочитать ошибки и добавить необходимые внешние домены в правило CSP. Кстати, вот хороший инструмент, который может помочь оценить ваше правило CSP:
https://csp-evaluator.withgoogle.com/

Правильный формат для вставки в этот инструмент выглядит следующим образом: но когда я удаляю его, все внешние скрипты перестают загружаться, даже если они занесены в белый список правила... влияние и обходные пути описаны здесь https://developers.google.com/web/fundamentals/security/csp/#inline_code_is_considered_harmful
 

Professional1


Рег
23 Aug, 2013

Тем
0

Постов
2

Баллов
2