Переписать csp правила

C7
На сайте с 25.01.2009
Offline
107
776

Здравствуйте.

У меня на данный момент в основной шаблон сайта вписан csp

<?php

header("Content-Security-Policy: default-src 'self' 'unsafe-inline' 'unsafe-eval' 'script-src' ". file_get_contents('http://www.сайт/domain.txt')."

сайт www.сайт liveinternet.ru

liveinternet.ru counter.yadro.ru //counter.yadro.ru https://informer.yandex.ru/

");

?>

Я где-то на форумах читал, что этот код работает не на всех браузерах и нужна писать его в .htaccess

Подскажите, как тоже самое написать в htaccess файле.

Лично я учился создавать и зарабатывать на сайте здесь - манимастер (http://www.moneymaster.ru/?chess77)
L
На сайте с 07.12.2007
Offline
351
#1

Нет совершенно никакой разницы отдавать правила CSP через .htaccess или на PHP через header().

.htaccess отдаёт CSP в браузер через те же самые http-заголовки:

<ifModule mod_headers.c>
Header set Content-Security-Policy "тут ваше содержимое из header(...)"
</IfModule>

PS: Содержимое вашего header(...) можно посмотреть в консоли браузера, тк у вас инклудится текстовый файл с правилами и непонятно что в нём.

C7
На сайте с 25.01.2009
Offline
107
#2

Пишу, как вы сказали, выдается ошибка 500

<ifModule mod_headers.c>

Header set Content-Security-Policy "default-src 'self' 'unsafe-inline' 'unsafe-eval' 'script-src' ". file_get_contents('http://www.сайт/domain.txt')."

сайт www.сайт liveinternet.ru

liveinternet.ru counter.yadro.ru //counter.yadro.ru https://informer.yandex.ru/ "

</IfModule>

Ragnarok
На сайте с 25.06.2010
Offline
239
#3

chess777, читайте внимательнее

Ladycharm:
PS: Содержимое вашего header(...) можно посмотреть в консоли браузера, тк у вас инклудится текстовый файл с правилами и непонятно что в нём.

это к куску "file_get_contents('http://www.сайт/domain.txt')", где file_get_contents -- php функция

//TODO: перестать откладывать на потом
C7
На сайте с 25.01.2009
Offline
107
#4

А если без этой функции, то код должен вот таким быть?

<ifModule mod_headers.c>

Header set Content-Security-Policy "default-src 'self' 'unsafe-inline' 'unsafe-eval' 'script-src'

сайт www.сайт liveinternet.ru

liveinternet.ru counter.yadro.ru //counter.yadro.ru https://informer.yandex.ru/ "

</IfModule>

В таком варианте тоже выдается ошибка 500, похоже с пунктуацией что-то не так.

L
На сайте с 07.12.2007
Offline
351
#5
chess777:
А если без этой функции, то код должен вот таким быть?

Это можно посмотреть в консоли браузера. Или изучить содержимое вашего файла http://www.сайт/domain.txt

chess777:
<ifModule mod_headers.c>
Header set Content-Security-Policy "default-src 'self' 'unsafe-inline' 'unsafe-eval' 'script-src'

сайт www.сайт liveinternet.ru
liveinternet.ru counter.yadro.ru //counter.yadro.ru https://informer.yandex.ru/ "
</IfModule>

В таком варианте тоже выдается ошибка 500, похоже с пунктуацией что-то не так.

Да, по синтаксису .htaccess - всё внутри Header set Content-Security-Policy "..." должно быть в ОДНУ строку.

Или (если конфигурация вашего хостинга поддерживает полный синтаксис htaccess) - переносы строк делаются через \ в конце строки:

<ifModule mod_headers.c>
Header set Content-Security-Policy "\
default-src 'self';\
script-src 'self';\
"
</IfModule>

И не забудьте, что строка содержимого заголовка должна быть в кавычках " "

C7
На сайте с 25.01.2009
Offline
107
#6

<ifModule mod_headers.c>

Header set Content-Security-Policy "default-src 'self';style-src 'unsafe-inline' *;frame-src *;img-src * data:;media-src *;font-src *;script-src 'self' 'unsafe-inline' 'unsafe-eval' www.site.ru site.ru http://site.ru"

</IfModule>

Поставил вот такой код, теперь возникла другая проблема.

У меня плагин на сайте по адресу http://сайт/plugin/index.php, он выводит ролики кодом

<iframe src="/tubes/embed/0e0584c2659be1d7c0d4c1fd79409f0d/" frameborder="0" scrolling="no" width="100%" onload="resize_frame(this);" id="player"></iframe>

Что надо добавить в csp, чтоб они начали работать?

Я вас наверно уже замучал, но осталось совсем чуть чуть )

L
На сайте с 07.12.2007
Offline
351
#7
chess777:
Что надо добавить в csp, чтоб они начали работать?

frame-src *; поменяйте на frame-src 'self';.

PS: CSP методом "научного тыка" не настроишь.

C7
На сайте с 25.01.2009
Offline
107
#8
Ladycharm:
frame-src *; поменяйте на frame-src 'self';.

PS: CSP методом "научного тыка" не настроишь.

Ну все, с этим разобрались )

Тут теперь другая проблемка нарисовалась. Так уж получается, что на одном из сайтов приходится использовать код csp между head. Возникла опять проблема.

Смотрите, в файле прописано

<?php

header("Content-Security-Policy: default-src 'self' 'unsafe-inline' 'unsafe-eval' 'script-src' сайт www.сайт ");

?>

Мне нужно чтоб работал самый простой код он тизернета, формата

<script type="text/javascript">

teasernet_blockid = 744552;

teasernet_padid = 15305;

</script>

<script type="text/javascript" src="http://rgitc.xyz/e878369/fef1/81.js"></script>

Мне почему-то казалось, что достаточно будет вписать http://rgitc.xyz в csp как-то так:

<?php

header("Content-Security-Policy: default-src 'self' 'unsafe-inline' 'unsafe-eval' 'script-src' сайт www.сайт http://rgitc.xyz ");

?>

Но нет, реклама не показывается. Неужели опять с пунктуацией что-то?

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий