CSP & SSL встроенный Javascript и как ссылаться извне
Я пытаюсь обернуть голову вокруг CSP(Content Security Policy), прежде чем добавить много "материала" на свой сайт. Я добавил следующий код в соответствии с видео Youtube и различными источниками документации, но у меня возникают проблемы с пониманием того, как обойти определенные проблемы.
<meta http-equiv="Content-Security-Policy"
content=" upgrade-insecure-requests; default-src;
style-src 'self' *.dmca.com *.trustlogo.com
*.revolvermaps.com *.deviantart.com
*.ebay.co.uk *.amazon.com
connect-src *ra.revolvermaps.com *.revolvermaps.com
https://www.ra.revolvermaps.com/
https://www.revolvermaps.com
font-src 'self' *;
object-src 'self' ;
img-src 'self' ;
script-src https:www.ssl.comodo.com;></meta>
У меня на сайте есть SSL-сертификат от Comodo, он состоит из двух частей, которые встроены в теги сценария: одна находится в теге head, а другая внизу тела. Если CSP работает и выполняет свою работу, то по умолчанию встроенные сценарии отключены? Comodo рекомендует иметь эти скрипты в голове и на теле. не рекомендуется использовать inline-Unsafe. С этой частью все в порядке, я добавил ссылку в атрибут разрешенных скриптов, и сертификат загружается нормально с зеленым замком вверху. Часть, которая не работает, - это логотип, который использовался для ссылки на сайт и показывает действующий сертификат. Его исчезают полностью. И попробовав каждую комбинацию или экземпляр ссылки comodo в атрибуте "img-src" CSP, который я публикую здесь, чтобы получить ваши мнения.
Как реализовать как SSL, так и CSP, не нарушая ни одного. Могу я; A) Поместите сценарии comodo во внешний файл.Js, и если да, то как мне ссылаться на них в HTML без использования встроенных js. теги сценария. Б) есть ли еще одна ссылка img-src от Comodo, которую мне не хватает? C) мне нужно добавить их к любым другим атрибутам CSP, таким как дочерний элемент или объект, о которых я не знаю......
Я пробовал (*secure.comodo.com - *.trustlogo.com - comodo_secure_seal_100x85-transp.png - https://secure.comodo.com/ - https://ssl.comodo.com/ - https://trustlogo.com/images/new-trustlogos/) и многие другие варианты.... Служба поддержки не очень помогает в этом вопросе, говоря, что это не проблема SSL.
пс. "trustlogo/javascript/trustlogo.js" находится в SCRIPT-SRC и, кажется, работает. Места, где я поставил двойное "-", указывает на пробел. Для ясности, скрипт SSL явно загружается, но логотип, там ссылка и изображение замка, которое обычно показывает сертификат, когда зависание не работает / показывает какую-либо помощь был бы очень признателен, это сделало бы довольно многословный поисковый запрос Google... и я посмотрел, в меньшем количестве слов.
1 ответ
Я могу дать вам несколько советов, но если на вашем сайте много сценариев, потребуется некоторое время, пока вы не получите правильный CSP.
добавлять report-uri
и может быть даже report-to
на ваш сайт csp- https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/report-uri
(Я знаю, это говорит report-uri
устарел, но на момент написания этого ни один браузер не поддерживает report-to
)
Вам нужно будет внедрить некоторый маршрут на вашем сервере для кэширования этих отчетов или регистрации в какой-либо сторонней службе)
Исходя из моего опыта, отчет не сложен для понимания, но как только вы его настроите, намного легче увидеть, когда ваш CSP что-то блокирует. на данный момент это, вероятно, будут только те вещи, которые вы не настроили должным образом, но после того, как вы закончили настраивать CSP должным образом, очень важно знать, когда что-то было заблокировано на вашем сайте, и выяснить, как это нужно сделать в первую очередь.
Как и в случае с Comdo, js-код, который вы упоминаете, не имеет ничего общего с реальным ssl вашего сайта, это просто comodo, рекламирующий себя на вашем веб-сайте. Если вы все еще хотите иметь их логотип и все остальное, вы можете переместить сценарии во внешний файл js без проблем.
В соответствии с рекомендациями JS рекомендуется размещать сценарии в конце тега body (в основном по соображениям производительности). Существует небольшая вероятность того, что размещение тега script в конце тега body может привести к его поломке, но я попробую сначала и только если это не работает по какой-то причине, я бы переместить его в начало страницы