thurman, очень интересно получается, залил файл отчета на другой сайт несколько дней назад, сейчас вспомнил, зашел и обнаружил, что отчеты, хоть и не много, но пишутся. Жалко там посещаемость чуть больше нуля...
А на том сайте, что мы обсуждали, видимо что-то препятствует исполнению файла отчета.
<?php header("HTTP/1.0 204 No Response"); $data = file_get_contents('php://input'); if ($data = json_decode($data)) { //Здесь в $data находится объект с отчетом - его нужно куда-то сохранить }
thurman,
Спасибо большое, но все равно не получается. С php вообще не знаком.
В этом файле написал так:
<?php header("HTTP/1.0 204 No Response"); $data = file_get_contents('php://input'); if ($data = json_decode($data)) { //Здесь в $data находится объект с отчетом - его нужно куда-то сохранить }?>
и так же папку назвал "hernyaot4et", но все равно при открытии файла в браузере
Ошибка сервераВозникла ошибка сайта при загрузке https://сайт.com/hernyaot4et.php. Возможно, сайт закрыт на техническое обслуживание или неверно сконфигурирован.
<?php /*function spam($data) { $mas[]=Array(); //список для игнора 'bad_url_1', 'bad_url_2', 'bad_url_3'... $kol=count($mas); $result=0; for ($i=0; $i<$kol; $i++) { if ( ($mas[$i])&&(strpos($data,$mas[$i])) ) $i=$kol; } return $result; } */ header("HTTP/1.0 204 No Response"); $data = file_get_contents('php://input'); if ($data = json_decode($data)) { $data=stripslashes(json_encode($data)); #if (spam($data)==0) //это если шнягу фильтровать - а так не надо #{ if(!is_dir($_SERVER['DOCUMENT_ROOT'].'/hernyaot4et/'.date("dmY"))) mkdir($_SERVER['DOCUMENT_ROOT'].'/hernyaot4et/'.date("dmY"), 0777); else { $data_z = $data; $data_z = str_replace("{","",$data_z); $data_z = str_replace("}","",$data_z); list($hello, $body) = explode("csp-report", $data_z); list($document_uri, $referrer, $violated_directive, $original_policy, $blocked_uri, $source_file, $line_number, $column_number, $status_code) = explode(",", $body); $print_data = "csp-report:\n----------------------------------------\n".$document_uri."\n".$referrer."\n".$violated_directive."\n".$blocked_uri."\n".$source_file."\n".$line_number."\n".$column_number."\n".$status_code."\n"; preg_match('#"blocked-uri":"(.*)",#isU',$data,$url); if ($url[1]) { preg_match('#"violated-directive":"(.*)",#isU',$data,$url1); $var_array = explode('/',$url[1]); if($var_array[2])file_put_contents($_SERVER['DOCUMENT_ROOT'].'/hernyaot4et/'.date("dmY").'/'.$var_array[2], 'violated-directive: '.$url1[1]."\nUSER_AGENT: ".$_SERVER['HTTP_USER_AGENT']."\nIP: ".$_SERVER['REMOTE_ADDR']."\n\r#---------------------------------------------------------------~\n", FILE_APPEND | LOCK_EX); else file_put_contents($_SERVER['DOCUMENT_ROOT'].'/hernyaot4et/'.date("dmY").'/'.date("H").'-csp-report.txt', $print_data."\n".$_SERVER['HTTP_USER_AGENT']."\n".$_SERVER['REMOTE_ADDR']."\n----------------------------------------\n", FILE_APPEND | LOCK_EX); } else { file_put_contents($_SERVER['DOCUMENT_ROOT'].'/hernyaot4et/'.date("dmY").'/'.date("H").'-csp-report.txt', $print_data."\n".$_SERVER['HTTP_USER_AGENT']."\n".$_SERVER['REMOTE_ADDR']."\n----------------------------------------\n", FILE_APPEND | LOCK_EX); } } #} } ?>
а при попытке открытия файла в опере вот что выдает:
Проблема с отчетом - не отчитывается...
Использовал содержимое файла с одного из постов, скобки заменил на квадратные.
Файл назвал csp.php и папку csp, права на запись и исполнение дал. Стоит php 5.
Может пожалуйста кто поделиться рабочим отчетом?
Уже использую (со вчера), клики считаются, правда, как написал выше, нет отчетов.
не уверен, что не забанят после публикации ссылки на сторонний ресурс, а так бы показал. Сайт работает через https и благодаря CSP рейтинг A+.
Здравствуйте!
Отличная и необходимая тема CSP!
Почитав, составил свои правила для nginx.
Из того, что использую: Сайт работает по HTTPS, стоят Yandex.Metrika counter, Google Analytics, LiveInternet counter, Rating@Mail.ru counter и Google AdSense, ролик Yotube.
Вот мой код:
add_header Content-Security-Policy " default-src 'self' *.mysyte.ru mysyte.ru; script-src 'self' 'unsafe-inline' 'unsafe-eval' *.mysyte.ru mysyte.ru http://yandex.ru *.digiseller.ru https://graph.digiseller.ru http://*.yandex.ru http://mc.yandex.ru https://mc.yandex.ru http://awaps.yandex.ru http://yandex.st http://*.yandex.st https://yandex.st https://*.yandex.st http://yandex.net http://*.yandex.net http://*.google-analytics.com https://*.google-analytics.com http://*.googlesyndication.com https://*.googlesyndication.com http://*.doubleclick.net https://*.doubleclick.net http://*.gstatic.com https://*.gstatic.com http://*.googleapis.com https://*.googleapis.com http://*.google.com https://*.google.com http://top-fwz1.mail.ru frame-src 'self' *.mysyte.ru mysyte.ru *.digiseller.ru https://graph.digiseller.ru http://mc.yandex.ru https://mc.yandex.ru http://awaps.yandex.ru http://*.doubleclick.net https://*.doubleclick.net http://*.googleadservices.com https://*.googleadservices.com http://*.googlesyndication.com https://*.googlesyndication.com http://*.google.com https://*.google.com http://*.youtube.com https://*.youtube.com; object-src 'self' *.mysyte.ru mysyte.ru *.digiseller.ru https://graph.digiseller.ru http://*.doubleclick.net https://*.doubleclick.net http://*.gstatic.com https://*.gstatic.com http://*.googlesyndication.com https://*.googlesyndication.com http://*.youtube.ru https://*.youtube.ru http://*.youtube.com https://*.youtube.com; style-src 'self' 'unsafe-inline' *.mysyte.ru mysyte.ru http://*.googleapis.com https://*.googleapis.com http://*.gstatic.com https://*.gstatic.com; img-src * data:; media-src *; font-src * data: *.mysyte.ru mysyte.ru http://*.googleapis.com https://*.googleapis.com http://*.gstatic.com https://*.gstatic.com; connect-src 'self' *.mysyte.ru mysyte.ru *.digiseller.ru https://graph.digiseller.ru https://translate.googleapis.com https://pipe.skype.com http://*.google-analytics.com https://*.google-analytics.com https://*.yandex.ru http://*.youtube.com https://*.youtube.com http://googlevideo.com http://*.googlevideo.com https://googlevideo.com https://*.googlevideo.com; report-uri https://mysyte.ru/csp.php";
Если возможно, прошу проверить на правильность. Может чего не учел?
Заранее благодарен!