Форум
Читайте нас также:

об электронной торговле - для интернет-магазинов и ритейла. портал и сообщество

Форум

Оценка сайта по пяти-бальной шкале?

1 (Всего голосов: 2)
33%
2 (Всего голосов: 1)
17%
3 (Всего голосов: 2)
33%
4 (Всего голосов: 0)
Голосов нет
5 (Всего голосов: 1)
17%
Всего голосов : 6

Прошу оценить юзабилити ИМ подарков



Ссылка на сообщение irvine


a24mag:

где domen.ru - это ваш домен.
каждому надо настраивать под себя - чтобы ВСЕ страницы сайта корректно работали.


Пишут, что сейчас советник иногда подгружается через sript-src = https://sovetnik.market.yandex.ru

В вышенаписанных кодах правило *.yandex.ru его пускает. Как минимум эту директиву надо менять.

Но сейчас у меня и без нее Советник появляется: http://clip2net.com/s/3qJBXXx

До сегодняшнего он блокировался.



Ссылка на сообщение irvine


Немного покопался в интернете.

Суть в том, что теперь советник подгружает нужную ему библиотеку не через "ваш сайт", а через "расширение броузера".

А вот CSP у "расширения броузера" свое:

Content-Security-Policy:script-src 'self' blob: filesystem: chrome-extension-resource:; object-src 'self' blob: filesystem:;

Оно то и позволяет работать Советнику.

В общем я в этом всем не силен. Думаю в ближайшее время этим займутся лучшие программисты нежели я...



Ссылка на сообщение a24mag


irvine:

Оно то и позволяет работать Советнику.


Немного неверно... я привел пример блокоровки в логах именно того скрипта который отвечает за вывод этого вонючего банера.
А вот скрипт обмена метаданными с вашего сайта на сайт яндекс маркета - пусть работает, он не мешает, т.к. ничего не выводит в браузер. Если есть корреляция позиции в яндексе с блокированием скрипта маркета, то лучше его не блокировать.
Именно метабар (лог блокировки которого я привел) - ответсвеннен за отображение информации в браузере.



Ссылка на сообщение irvine


Совместо с a24mag нашли решение:
надо в CSP добавить директиву connect-src с белым списком всех необходимых доменов.
Рекомендую тщательно проверить работу сайта и всех скриптов.

Например JivoChat требует разрешения к wss://node#.jivosite.com;
где # - случайное число, индивидуальное для вашего виджета. Конкретное число узнаем из консоли (при попытке отправить сообщение, она напишет какой node был заблокирован).

Обратите внимание, что надо указать протокол wss.

connect-url 'self' wss://node8.jivosite.com



Ссылка на сообщение a24mag


Вот пример отчета:
Код: Выделить всё
{"csp-report":{
"document-uri":"http:\/\/a24mag.ru\/category\/lizuny\/",
"referrer":"http:\/\/www.yandex.ru\/clck\/*****",
"violated-directive":"script-src 'self' a24mag.ru https:\/\/ajax.googleapis.com https:\/\/www.google-analytics.com https:\/\/mc.yandex.ru https:\/\/top-fwz1.mail.ru https:\/\/st.top100.ru https:\/\/vk.com
'unsafe-eval'
'unsafe-inline' https:\/\/yandex.ru *.yandex.ru yandex.st *.ytimg.com *.vk.com https:\/\/vk.com *.top100.ru *.mail.ru *.doubleclick.net *.api.twitter.com *.facebook.com *.yandex.net https:\/\/yastatic.net https:\/\/www.google-analytics.com *.googleapis.com maps.google.com",
"effective-directive":"script-src",
"original-policy":"default-src 'self' a24mag.ru https:\/\/yandex.ru https:\/\/mc.yandex.ru *.yandex.ru *.yandex.net *.googleapis.com *.gstatic.com *.vk.com https:\/\/vk.com; connect-src 'self' a24mag.ru https:\/\/mc.yandex.ru https:\/\/yandex.ru api-maps.yandex.ru *.vk.com https:\/\/vk.com *.doubleclick.net https:\/\/informer.yandex.ru *.googleapis.com *.gstatic.com https:\/\/www.google-analytics.com; script-src 'self' a24mag.ru https:\/\/ajax.googleapis.com https:\/\/www.google-analytics.com https:\/\/mc.yandex.ru https:\/\/top-fwz1.mail.ru https:\/\/st.top100.ru https:\/\/vk.com 'unsafe-eval' 'unsafe-inline' https:\/\/yandex.ru *.yandex.ru yandex.st *.ytimg.com *.vk.com https:\/\/vk.com *.top100.ru *.mail.ru *.doubleclick.net *.api.twitter.com *.facebook.com *.yandex.net https:\/\/yastatic.net https:\/\/www.google-analytics.com *.googleapis.com maps.google.com; style-src 'self' a24mag.ru https:\/\/yastatic.net 'unsafe-inline' https:\/\/yandex.ru *.yandex.ru *.yandex.net *.ytimg.com *.googleapis.com; img-src 'self' a24mag.ru https:\/\/yandex.ru *.yandex.ru https:\/\/informer.yandex.ru https:\/\/yandex.ru https:\/\/stats.g.doubleclick.net https:\/\/www.google.com https:\/\/mc.yandex.ru https:\/\/yastatic.net www.tns-counter.ru https:\/\/www.google.ru https:\/\/vk.com https:\/\/www.google.com.ua.ru *.vk.com *.yandex.net *.maps.yandex.net *.mail.ru https:\/\/www.google-analytics.com *.googleapis.com *.yadro.ru *.rambler.ru *.gstatic.com data: *.yadro.ru *.mail.ru https:\/\/yandex.ru https:\/\/mc.yandex.ru *.yandex.ru *.yandex.net *.maps.yandex.net *.ytimg.com; frame-src 'self' a24mag.ru https:\/\/yastatic.net https:\/\/yandex.ru *.yandex.ru *.youtube.com https:\/\/vk.com *.vk.com *.yandex.net; report-uri \/csp\/report.php",
"blocked-uri":"http:\/\/hdapp1003-a.akamaihd.net","source-file":"http:\/\/apibrowsergoodin-a.akamaihd.net","line-number":3,"column-number":485,"status-code":200}}


blocked-uri - блокируемый домен
original-policy - оригинальная инструкция
effective-directive - политика которая сработала
violated-directive - место где надо прописать изменения чтобы blocked-uri стал доступным
referrer - источник перехода
document-uri - страница где возникла блокировка.

blocked-uri - можно получить большой список вредоносных сайтов и т.п.



Ссылка на сообщение a24mag


Как сделать отчеты?
Создаем в корне сайта папку к примеру csp
в ней:
пустой текстовый документ: report.txt
и скрипт report.php

тело скрипта:
Код: Выделить всё
<?php
header("HTTP/1.0 204 No Response");
$file = 'report.txt';
if($json_data = json_decode(file_get_contents('php://input'))){
$data = json_encode($json_data)."\n";
file_put_contents($file, $data, FILE_APPEND | LOCK_EX);
}


Далее в прописываем куда скидывать отчеты в htaccess:
Код: Выделить всё
Header set Content-Security-Policy "default-src 'self' ***; connect-src 'self' ***; script-src 'self' *** 'unsafe-eval' 'unsafe-inline ***; style-src 'self'; img-src 'self' *** data:***; frame-src 'self' ***; report-uri /csp/report.php"


report-uri - как раз отвечает за отчеты.

Удачи в битве за чистые сайты! :D



Ссылка на сообщение a24mag


Продолжим так скажем "записки программиста"...

Дописал скрипт чтобы можно было легко увидеть список блокируемых сайтов - иначе черный список.

Код: Выделить всё
<?php
header("HTTP/1.0 204 No Response");
$file = 'report.txt';
if($json_data = json_decode(file_get_contents('php://input'))){
$data = json_encode($json_data)."\n";
file_put_contents($file, $data, FILE_APPEND | LOCK_EX);
}
/*ниже дописал инструкцию*/
$file1 = 'blocked-uri.txt';
$csvLine = '';
$data1 = file_get_contents('php://input');
if ($array = json_decode($data1, true)){
$csvLine .= "blocked-uri: ".$array['csp-report']['blocked-uri']."\n";
file_put_contents($file1, $csvLine, FILE_APPEND);

}

теперь в blocked-uri.txt - будет список сайтов. при этом полные отчеты сохраняются.

Если кто боится запускать в боевой режим CSP:
меняйте
Header set Content-Security-Policy

на:
Header set Content-Security-Policy-Report-Only

Это позволит получать отчеты и более грамотно настроить.

В blocked-uri.txt - многие сайты лучше не открывайте - они могут быть вирусными. Если такой сайт есть в списке - значит какого-то пользователя вы защитили от банера с рекламой на своем сайте, а соответственно не опустили поведенческие и не создали присутствие вирусной рекламы на своем сайте.

Всем спасибо! Задавайте вопросы - чем смогу - помогу ))



Ссылка на сообщение a24mag


Да, есть еще одна особенность:
- указывайте протокол в явном виде:
Код: Выделить всё
https://vk.com vk.com https://login.vk.com

либо просто:
Код: Выделить всё
vk.com


- старайтесь избегать звездочек:
Код: Выделить всё
*.vk.com


если конечно же доверяете ресурсу * можно оставить.
Но если например, идет подключение через https - то нужно указать жесткие директивы с соответствующими протоколами.

делайте свои сайты безопаснее! :D



Ссылка на сообщение a24mag


И снова здравствуйте!
Вот полезная ссылка по теме предыдущих постов: http://content-security-policy.ru/



Ссылка на сообщение a24mag


новая доработка кода:
Код: Выделить всё
<?php
header("HTTP/1.0 204 No Response");
$d = getdate();
$file = "$d[mday].$d[mon].$d[year].".'report.txt';
if($json_data = json_decode(file_get_contents('php://input'))){
$data = json_encode($json_data)."\n";
file_put_contents($file, $data, FILE_APPEND | LOCK_EX);
}
$file1 = "$d[mday].$d[mon].$d[year].".'blocked-uri.txt';
$csvLine = '';
$data1 = file_get_contents('php://input');
if ($array = json_decode($data1, true)){
$csvLine .= "blocked-uri: ".$array['csp-report']['blocked-uri']."\n";
file_put_contents($file1, $csvLine, FILE_APPEND);
}


- теперь есть отчеты по датам.
Столкнулся с тем когда отчет активно пополняется, то каждая новая запись подтормаживает систему. И за счет тах задержек, именно в момент записи не срабатывает защита.
за счет разбивки по датам - файл становится меньше - в итоге перезапись происходит быстрее...



Ссылка на сообщение anstrem@yandex.ru
1


-------



Ссылка на сообщение Saboteur


Очень прошу написать инструкцию куда и что ставить. Не могу понять куда и что прописывать. Спасибо.



Ссылка на сообщение a24mag


Saboteur:

Очень прошу написать инструкцию куда и что ставить. Не могу понять куда и что прописывать. Спасибо.


в корне сайта в .htaccess прописал

Код: Выделить всё
Header set X-Frame-Options SAMEORIGIN

Header set Content-Security-Policy "default-src 'self' a24mag.ru https://yandex.ru https://mc.yandex.ru https://vk.com vk.com https://login.vk.com m.vk.com *.gstatic.com https://yastatic.net yastatic.net www.youtube.com https://www.youtube.com; connect-src 'self' a24mag.ru https://mc.yandex.ru https://yandex.ru www.google-analytics.com api-maps.yandex.ru yandex.st https://yandex.st https://vk.com vk.com https://login.vk.com https://informer.yandex.ru https://www.google-analytics.com https://my.net2pay.ru; script-src 'self' a24mag.ru *.yandex.ru *.yandex.net *.googleapis.com api-maps.yandex.ru *.google.com st.top100.ru mc.yandex.ru top-fwz1.mail.ru www.google-analytics.com vk.com https://site.yandex.net https://api.vk.com https://informer.yandex.ru https://ajax.googleapis.com https://www.google-analytics.com https://mc.yandex.ru https://top-fwz1.mail.ru https://st.top100.ru https://vk.com https://api-maps.yandex.ru 'unsafe-eval' 'unsafe-inline' vk.com yandex.st https://yandex.st maps.google.com https://yandex.ru https://vk.com https://yastatic.net https://www.google-analytics.com; style-src 'self' a24mag.ru *.googleapis.com https://code.jquery.com https://yastatic.net yandex.st  https://yandex.st https://my.net2pay.ru 'unsafe-inline' https://yandex.ru; img-src 'self' a24mag.ru *.googleapis.com *.gstatic.com *.yandex.ru counter.yadro.ru top-fwz1.mail.ru counter.rambler.ru yastatic.net www.tns-counter.ru maps.google.com https://site.yandex.net https://yandex.ru https://informer.yandex.ru https://api-maps.yandex.ru https://stats.g.doubleclick.net https://www.google.com https://mc.yandex.ru https://yastatic.net https://top-fwz1.mail.ru https://www.google.ru https://vk.com vk.com https://www.google-analytics.com www.google-analytics.com vec04.maps.yandex.net vec03.maps.yandex.net vec02.maps.yandex.net vec01.maps.yandex.net https://vec04.maps.yandex.net https://vec03.maps.yandex.net https://vec02.maps.yandex.net https://vec01.maps.yandex.net https://clck.yandex.ru data: 'self' a24mag.ru vk.com https://yandex.ru https://mc.yandex.ru; frame-src 'self' a24mag.ru yastatic.net *.yandex.ru www.youtube.com mailto m.vk.com vk.com https://yastatic.net https://yandex.ru https://www.youtube.com https://vk.com https://login.vk.com; child-src 'self' a24mag.ru yastatic.net *.yandex.ru www.youtube.com mailto m.vk.com vk.com https://yastatic.net https://yandex.ru https://www.youtube.com https://vk.com https://login.vk.com; report-uri /csp/report.php"


Каждый сайт имеет свои индивидуальные настройки. Что нужно прописать а что нет - нужно исходить из отчетов.

создал в корне папку csp
в ней файл report.php
содержимое скрипта
Код: Выделить всё
<?php
//версия 2.12 доработка Солтык А.М.
header("HTTP/1.0 204 No Response");
$d = getdate();
$file = "$d[mday].$d[mon].$d[year].".'report.txt';
if($json_data = json_decode(file_get_contents('php://input'))){
$data = json_encode($json_data)."\n";
file_put_contents($file, $data, FILE_APPEND | LOCK_EX);
}
$file1 = "$d[mday].$d[mon].$d[year].".'blocked-uri.txt';
$csvLine = '';
$data1 = file_get_contents('php://input');
if ($array = json_decode($data1, true)){
$csvLine .= "blocked-uri: ".$array['csp-report']['blocked-uri']."\n";
file_put_contents($file1, $csvLine, FILE_APPEND);
}


Единственное, яндекс уже научился обходить эту блокировку тем более в своем же браузере.
Но всё равно показывается не так чаще как раньше (т.е. частично блокируется).
Установить считаю нужно, т.к. 70-90% блокировок - это вирусы и другие сюрпризы...






Ответить



:D
:)
:(
:o
:shock:
:?
8)
:lol:
:x
:P
:oops:
:cry:
:evil:
:twisted:
:roll:
:wink:
:!:
:?:
:idea:
:arrow:
:|
:mrgreen:





2001 - 2017 © Оборот.ру. Все права защищены