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

C
На сайте с 07.05.2010
Offline
211
266313

Тема /ru/forum/866823 разрослась, поэтому вопросы безопасности сайтов вынесу в новую тему.

Резюме прошлой темы:

1) рост плагинов, которые подменяют код рекламы AdSense, Яндекс.РС и другие на свой вирусный код.

2) Защита возможна через CSP (но не на 100%) и через javascript.

Для настройки блокировки через CSP, например, для допуска кода AdSense можно использовать следующий заголовок (в файле .htaccess):


<ifModule mod_headers.c>
Header set Content-Security-Policy "default-src 'self' мой_сайт;script-src 'self' 'unsafe-inline' 'unsafe-eval' мой_сайт advapi.ru http://10.20.2.42:15871 *.akamaihd.net *.amazonaws.com *.ytimg.com http://*.whisla.com https://*.googleapis.com https://*.google.com *.google.com *.gstatic.com https://*.gstatic.com www.google-analytics.com https://www.google-analytics.com http://*.googlesyndication.com https://*.googlesyndication.com *.googleapis.com *.doubleclick.net;object-src 'self' http://*.ytimg.com *.macromedia.com *.adobe.com https://*.adobe.com https://*.googleapis.com http://www.youtube.com https://www.youtube.com *.gstatic.com;style-src 'self' 'unsafe-inline' мой_сайт https://* http://netdna.bootstrapcdn.com;img-src * data: мой_сайт; media-src 'self' * mediastream: *;frame-src 'self' 'unsafe-eval' blocking.stat *.yahoo.com *.hubrus.com http://yandex.sc http://www.youtube.com https://www.youtube.com http://*.googlesyndication.com *.doubleclick.net https://*.doubleclick.net https://*.google.com http://*.google.com;font-src 'self' мой_сайт *;connect-src 'self' https://www.youtube.com *.googlevideo.com https://*.gstatic.com;report-uri http://мой_сайт/csp.php"
</IfModule>

При этом код файла отчета может иметь следующий вид:


function spam($data)
{
$mas[]=Array(список для игнора);

$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 = json_encode($data)."\n\r";
if (spam($data)==0) file_put_contents($_SERVER['DOCUMENT_ROOT'].'/путь/'.date("H").'-csp-report.txt', $data."\n", FILE_APPEND | LOCK_EX);
}
Оптимизайка
На сайте с 11.03.2012
Offline
396
#1

*.akamaihd.net - вирусня

http://10.20.2.42:15871 - вообще не интернет-адрес

data: - вирусня

http://yandex.sc - это не домен яндекса если что

blocking.stat - не домен а фигня какая-то

http://*.whisla.com - никаким боком к adsense

в целом - фарш :D С такими правилами, дейстительно не на 100% :D

⭐ BotGuard (https://botguard.net) ⭐ — защита вашего сайта от вредоносных ботов, воровства контента, клонирования, спама и хакерских атак!
C
На сайте с 07.05.2010
Offline
211
#2

В отчетах можно видеть следующие результаты (от Оптимизайка):

Ответы браузера или плагинов

1) mx://res/reader-mode/reader.html

Это режим "Reader" в MacOS Safari, который вырезает все и оставляет один текст

2) https://localhost

null

Это мобильные браузеры в iPhone/iPad. Они знатно глючат с CSP, поэтому для части их проще отключить CSP.

3) about;data;safari-resource;ybnotification;webviewprogressproxy;chromenull;chromeinvoke;chromeinvokeimmediatewyciwyg;safari-extension;asset;mbinit;command

Сами вирусы

например,

asabor.ruretargetpro.net;frotalmost.ruscreentoolkit.com;5.149.255.132superfish.com

И плагины пользователя, например

admuncher.com;adtrustmedia.com;metabar.ru

Для меня, например, так и не понятно куда отнести *.akamaihd.net, поскольку в Интернет он известен как вирус, но его пропускают facebook и twitter.

Самый вредоносный пока остается server381.com, который грузит кучу data:text/javascript;arteta.ru и другие. И зачем-то http://yandex.sc/v4/ci.iframe (вероятно по заказу - возможно это скрипт Яндекс, который зафиксирует факт наличия вредоносного кода и понизит рейтинг сайта).

---------- Добавлено 24.10.2014 в 14:02 ----------

Оптимизайка:
*.akamaihd.net - вирусня
http://10.20.2.42:15871 - вообще не интернет-адрес
data: - вирусня
http://yandex.sc - это не домен яндекса если что
blocking.stat - не домен а фигня какая-то
http://*.whisla.com - никаким боком к adsense

в целом - фарш :D С такими правилами, дейстительно не на 100% :D

С самого начала заявлял, что *.akamaihd.net вирус, но по данным зарубежных источников (блогеров), некоторые поддомены могут использоваться как датацентры cookie, которые используют рекламные площадки. До недавнего времени сам блокировал этот ресурс.

Например, вот содержимое одного из скрипта:


!function(t){for(var e=t.getElementsByTagName("script"),r=0;r<e.length;r++){var s=e[r];if(s&&s.src&&!s.getAttribute("data-processed")&&s.src.match(/-a\.akamaihd\.net\/sub\//)){s.setAttribute("data-processed","1");var a=s.src.split("?")[1];a=a?a.split("&"):[],a.push("zoneid="+encodeURIComponent("518313"));var c=s.src.match(/[&?]?pid=(\d+)/)[1];if(c){var i=t.createElement("script");return i.src="//"+s.src.split("/")[2]+"/loaders/"+c+"/l.js?"+a.join("&"),void t.body.appendChild(i)}}}}(document);

10.20.2.42:15871 - наткнулся на статью, что это какой-то глобальный прокси-сервер (по крайне мере код подзагружается именно из pagead2.googlesyndication.com/pagead/js/adsbygoogle.js

yandex.sc - редиректит на yandex.ru и служит видимо для каких-то технических задач.

blocking.stat - генерируется youtube.com

http://*.whisla.com - позагружается скриптами pagead2.googlesyndication.com/pagead/js/adsbygoogle.js

lonelywoolf
На сайте с 23.12.2013
Offline
151
#3

akamai это вообще-то cdn, которой в том числе beeline и microsoft пользуются. Ну и не тлько они :). Я б забанил к чертям.

---------- Добавлено 24.10.2014 в 16:15 ----------

yandex.sc

Registrant Name:Andrey Volzhak
Registrant Organization:Andrey Volzhak
Registrant Street1:7 kirpichnyy z-d d.9 kv.1 Voljaku Andreyu Sidorovichu
Registrant Street2:
Registrant Street3:
Registrant City:Omsk
Registrant State/Province:Omskaya obl.
Registrant Postal Code:644047
Registrant Country:RU
Registrant Phone:+7.4952551235
Registrant Phone Ext.:
Registrant FAX:+7.4952551235
Registrant FAX Ext.:
Registrant Email:scanids@gmail.com

Вы уверены, что это яша? Мне что-т так не кажется.

по поводу 10.x.x.x

NetRange: 10.0.0.0 - 10.255.255.255
CIDR: 10.0.0.0/8
NetName: PRIVATE-ADDRESS-ABLK-RFC1918-IANA-RESERVED

Где-то кого-то пытаются наколоть. Это внутренние IP-адреса, не предназначенные для выхода в интернет, т.е. это для локальных сетей больших организаций.

Платный и бесплатный хостинг с защитой от DDoS (http://aquinas.su)
C
На сайте с 07.05.2010
Offline
211
#4

Когда я пишу, что подзагружается чем-то, то имеется в виду, что в секции original-uri: указан googleads.g.doubleclick.net

Например, так указаны 192.92.92.100 и googleads.g.4zw.pw

N3
На сайте с 28.04.2014
Offline
98
#5
ctit:
'unsafe-inline' 'unsafe-eval'

После этих строк можно настройку CSP больше не продолжать ибо смысла от него ровно ноль.

Неискоренимо нежелание пользоваться поисковыми системами - даже находясь на форуме о поисковых системах © Cell Влазить напрямую в базу — это невозможно © Игорь Белов, mchost.ru Если SeoPult купил ссылку - значит она "рабочая" © Nat_SeoPult
C
На сайте с 07.05.2010
Offline
211
#6

'unsafe-inline' 'unsafe-eval'

Позволяют внедрять код сриптами. Поэтому дополнительно можно использовать защиту на js, либо вынести код AdSense отдельно и рискнуть получить бан.

Однако защита есть еще и в секции frame-src

Mik Foxi
На сайте с 02.03.2011
Offline
963
#7
Nam3D:
После этих строк можно настройку CSP больше не продолжать ибо смысла от него ровно ноль.

ну не преувеличивайте. поставьте в браузер всякого говна, в смысле тулбаров таких мутных, типа мюзиксиг вконтактовский и т.п. внешних js и фреймов грузится немерянно. если нельзя на 100% защититься - это не значит что 99 процентная защита не нужна.

Антибот, антиспам, веб файрвол, защита от накрутки поведенческих: https://antibot.cloud/ru.html
[Удален]
#8
foxi:
если нельзя на 100% защититься - это не значит что 99 процентная защита не нужна.

скажем так, CSP 25-30% всего режет :)

Mik Foxi
На сайте с 02.03.2011
Offline
963
#9

burunduk, +30% к заработку, разве этого мало?

C
На сайте с 07.05.2010
Offline
211
#10
ctit:
Тема /ru/forum/866823 разрослась, поэтому вопросы безопасности сайтов вынесу в новую тему.

Резюме прошлой темы:
1) рост плагинов, которые подменяют код рекламы AdSense, Яндекс.РС и другие на свой вирусный код.
2) Защита возможна через CSP (но не на 100%) и через javascript.

Для настройки блокировки через CSP, например, для допуска кода AdSense можно использовать следующий заголовок (в файле .htaccess):



При этом код файла отчета может иметь следующий вид:

Настройки приведены с учетом тестирования в течение месяца. При других настройках падает CTR, при данных настройках - сохраняется на высоком уровне.

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