Настройка CSP - Content Security Policy

HD
На сайте с 26.09.2014
Offline
147
#521
Ladycharm:

2. Настройки некоторых хостингов не поддерживают синтаксис переноса строки по \ - для них приходится вытягивать всё содержимое (то, что между <IfModule>... </IfModule>) в одну строку.

Да, действительно, получилось обойти ошибку только переносом кода в строку! Вот только отчётов никаких не вижу. Можно пожалуйста, как пример показать полностью настроенный файл для корректного отображения отчетов? Попробовал несколько способов, в том числе и описанный тут: http://zabolotskikh.com/tips/content-security-policy/

Читаем правила форума про подпись.
L
На сайте с 07.12.2007
Offline
351
#522
HorrorDrug:
Вот только отчётов никаких не вижу. Можно пожалуйста, как пример показать полностью настроенный файл для корректного отображения отчетов?

Я не использую для получения отчётов скрипты типа csp.php. Но тот csp.php, который приводился ранее в этом топике - у меня работал после небольшой доработки. Единственно - у него проблемы с безопасностью, но как исправить - тоже есть в этом в топике тут и тут.

Если у вас не работает скрипт - надо смотреть ошибки PHP и отлаживать. Возможно, папки для отчётов не открыты для записи.

Учтите, что движок этого форума имеет косяк, и в php-скриптах заменяет [ и ] на ***91; и ***93; соответственно.

PS: Если не можете отладить сами - покажите ваш скрипт приёма отчетов в топике - получите более конкретные рекомендации где копать.

HD
На сайте с 26.09.2014
Offline
147
#523
Ladycharm:

PS: Если не можете отладить сами - покажите ваш скрипт приёма отчетов в топике - получите более конкретные рекомендации где копать.

У меня точно такой же скрипт что и в этом топике, я только заменил цифры на квадратные скобки.

L
На сайте с 07.12.2007
Offline
351
#524
HorrorDrug:
У меня точно такой же скрипт что и в этом топике, я только заменил цифры на квадратные скобки.

Попробуйте вместо csp.php этот простой скрипт:


<?php
header("HTTP/1.0 204 No Response");
define('DIR', $_SERVER['DOCUMENT_ROOT'].'/csp/');
$data = file_get_contents('php://input');
$dir = DIR.date("dmY"); // Папка, куда пишем файлы CSP-отчётов
if (!is_dir($dir)) mkdir($dir, 0777);
file_put_contents($dir.'/csp-report.txt', $data."\n\n----------------------------------------\n", FILE_APPEND | LOCK_EX);
?>

Посмотрите, что при получении отчёта создаётся папка типа '/csp/03062015' а в ней будет файл csp-report.txt с присланными json.

Или в логах будут ошибки типа 'Невозможно создать папку', 'permisssion denied' и тп.

Если папка не создаётся:

- возможно, ваш хостинг не позволяет использовать абсолютные пути с $_SERVER['DOCUMENT_ROOT']. Тогда попробуйте поменять

define('DIR', $_SERVER['DOCUMENT_ROOT'].'/csp/');

на

define('DIR', 'csp/');

- Папки с отчётами должны создаваться от той, в которой расположен ваш csp.php

- В report-uri должен быть указан полный url с http://

http://домен.ru/путь/csp.php

- В логах сайта должны быть обращения к http://домен.ru/путь/csp.php методом POST

P
На сайте с 12.02.2006
Offline
183
#525

Может кто подскажет. Если сайт транслируется по защищенному протоколу: https://site.bu Необходимо ли и в этом случае настраивать CSP или защищенное соединение автоматом отсекает всякие подмены рекламы и других элементов на стороне браузера посетителя?

L
На сайте с 07.12.2007
Offline
351
#526
promosite:
Если сайт транслируется по защищенному протоколу

Плагины работают в браузере после того, как он получил и дешифровал https: страницу.

Но интернет-провайдеры не смогут вставлять свою рекламу. И зеркалирование трафика, которое использует i-marker для сбора информации о пользователях - тоже будет бесполезно в случае https://.

P
На сайте с 12.02.2006
Offline
183
#527
Ladycharm:
Плагины работают в браузере после того, как он получил и дешифровал https: страницу.

Но интернет-провайдеры не смогут вставлять свою рекламу. И зеркалирование трафика, которое использует i-marker для сбора информации о пользователях - тоже будет бесполезно в случае https://.

Спасибо, про провайдеров понял. Плагины тоже понял, не поможет, так как отрабатывают после расшифровки на стороне просмотрщика. А что за зеркалирование трафика, зашёл на imarker и ничего конкретного про технологию не увидел? Они тоже подменяют рекламу или добавляют свою поверх сайта, как провайдеры?

---------- Добавлено 03.06.2015 в 08:32 ----------

И ещё, какие-нибудь дополнительные особенности в настройке CSP для защищенных сайтов есть или все стандартно как и для htttp сайтов?

HD
На сайте с 26.09.2014
Offline
147
#528
Ladycharm:
Попробуйте вместо csp.php этот простой скрипт:

Посмотрите, что при получении отчёта создаётся папка типа '/csp/03062015' а в ней будет файл csp-report.txt с присланными json.
Или в логах будут ошибки типа 'Невозможно создать папку', 'permisssion denied' и тп.

Если папка не создаётся:
- возможно, ваш хостинг не позволяет использовать абсолютные пути с $_SERVER['DOCUMENT_ROOT']. Тогда попробуйте поменять
define('DIR', $_SERVER['DOCUMENT_ROOT'].'/csp/');
на
define('DIR', 'csp/');

- Папки с отчётами должны создаваться от той, в которой расположен ваш csp.php
- В report-uri должен быть указан полный url с http://
http://домен.ru/путь/csp.php
- В логах сайта должны быть обращения к http://домен.ru/путь/csp.php методом POST

Обращение к файлу в логах есть, но отчетов всёравно нет.

Может действительно я что-то не так делаю:

файл .htaccess

<ifModule mod_headers.c>
Header set Content-Security-Policy-Report-Only " default-src 'self'; img-src 'self'; style-src 'self'; script-src 'self'; object-src 'self'; connect-src 'self'; frame-src 'self'; font-src 'self'; report-uri http://site.ru/csp.php;"
</IfModule>

csp.php

<?php
header("HTTP/1.0 204 No Response");
define('DIR', $_SERVER['DOCUMENT_ROOT'].'/csp/');
$data = file_get_contents('php://input');
$dir = DIR.date("dmY"); //site.ru/
if (!is_dir($dir)) mkdir($dir, 0777);
file_put_contents($dir.'/csp-report.txt', $data."\n\n----------------------------------------\n", FILE_APPEND | LOCK_EX);
?>
I
На сайте с 30.05.2015
Offline
4
#529

Всем привет. Настроил csp. Вроде все режет как и положено. Сейчас жду от партнерок список доменов(у teasernet их больше десятка).

Но проблема в следующем. В папке отчетов создаются файлы разрешенных доменов(некоторых), и в нем ооочень много строк

Вот они:

violated-directive:

USER_AGENT: Mozilla/5.0 (Windows NT 6.1; rv:38.0) Gecko/20100101 Firefox/38.0

IP: ип сервера

#---------------------------------------------------------------~

violated-directive:

USER_AGENT: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Firefox/38.0

IP: ип сервера

p.s. Может было но все же. Наткнулся на расширение CSP Tester для хрома. Подсовывает все на лету. То есть можно писать и на живом сайте проверять как и что. И не один из пользователей не чего не заметит. А потом уже и в код сайта на постоянной основе.

*
На сайте с 08.09.2009
Offline
183
#530

HorrorDrug

я буквально сегодня всё настроил через https://cspbuilder.info

финальные сопли подбирал через FireBug в Лисе

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