Ladycharm

Рейтинг
351
Регистрация
07.12.2007
master_blog:
Первое, по поводу кода csp.php

Нас тут уже наругали за беспечность, поэтому не забывайте общие правила безопасности для "самопальных" скриптов:

1. Для этого варианта csp.php надо обрабатывать имя создаваемого файла по домену

2. Лучше обрабатывать данные, которые пишутся в файл по htmlentities(): file_put_contents($FileName, htmlentities($content)) - мы всё-равно их читаем как текстовые, а возможность инжектов php-кода это отключит.

3. В директории, куда пишутся файлы, надо отключать исполнение скриптов и закрывать доступ через WEB-интерфейс/по IP.

4. Смените название директории, в которую пишет скрипт на свою. Извне её узнать не так уж легко, а для взлома её нужно знать.

* По-уму, в скрипте csp.php надо убрать else и обрамляющие {} в условии:
if(!is_dir($_SERVER['DOCUMENT_ROOT'].'/csp/'.date("dmY"))) mkdir($_SERVER['DOCUMENT_ROOT'].'/csp/'.date("dmY"), 0777);
else
{
. . . // Это - оставить
}
иначе он не записывае самый первый блокируемый url за каждый день - а только создаёт папку.

master_blog:
Второе, лидирующий домен по блокировкам: bcp.crwdcntrl.net
Нашёл тут на форуме в другой ветке его в разрешённых доменах, но больше нигде не упоминается. Может это адсенсовский вспомогательный домен? akamai-hd решили не разрешать?

nslookup -type=all crwdcntrl.net говорит, что это не домен, контролируемый Google.

На akamai-hd хостится много malware, если ваш сайт не использует akamai-hd как CDN - не разрешайте его. Сам Facebook юзает akamai-hd как CDN, но фэйсбуковских виджетах он не используется, так что для наших сайтов - не требуется.

master_blog:
Третье, значит собрал из всех сообщений большой такой заголовок CSP. У меня стоит адсенс, РСЯ, комментарии ВК, гугл аналитика, счётчик ливинтернет, рамблер топ100, видео youtube, rutube, vimeo.

Если что-то пропущено - покажут отчёты CSP и консоль браузера. Если открыто что-то лишнее - снизится эффективность CSP.

Я изучаю и проверяю руками каждый домен, прежде чем его открыть в CSP. Иногда даже приходится ставить эксперименты.

master_blog:
Четвёртое, на счёт отключения CSP для мобильных пользователей. Как бы это сделать средствами .htaccess? У меня используется кэш, поэтому возникают сложности с внедрением заголовка через php.

Для Apache 2 есть условный оператор IF, им можно в .htaccess фильтровать по Юзерагенту. Для Apache 1.3 подобного нет.

Если кэширование делается средствами PHP - можно CSP заголовок выдавать этим кэширующим модулем.

master_blog:
Пятое, раньше было активное обсуждение скриптов, которые вырезали бы левую рекламу, но потом как-то заглохло. Читал, что tparser продавал некий скрипт. Отсюда вопрос, есть ли бесплатный или платный рабочий скрипт? Работает ли оно или лучше сосредоточиться на CSP?

Своим скриптом сражаться со связкой вражеский_скрипт+плагин - не эффективно:

- браузерный плагин "приоритетнее" вашего скрипта и имеет доступ внутрь фреймов.

- вражеский скрипт вставляется и исполняется раньше вашего - первым после секции <head>

- вы не можете вмешаться внутрь замыкания типа:

(function() {
. . .
})();
, а многие вредоносные скрипты обёрнуты именно так.

- кроссплатформенно писать на javascript задача не из самых простых

Но, после заголовков CSP можно дочищать кое-что уже ява-скриптом: по крайней мере - восстанавливать свою рекламу, если она была скрыта вражеским плагином. Но это уже ручная работа под каждый плагин.

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

Там все данные - публичные: ОГРНИП, whois. А как только его "адвокаты" объявятся - будет ясно на кого взломы сайта вешать. Там ещё бабка надвое сказала, кому штраф светит, а кому crime record

ctit:
Подскажите, пожалуйста, каким способом пытаются взломать сайт.

/ru/forum/867276

Если bash недоступен как CGI-скрипт - можно забить.

big boy:

imrk.net
rtb.rtcdn.ru
sync.upstats.ru
cookie.whisla.com
alltereg0.ru
x.bidswitch.net
adhigh.net
luxup.ru
adv679854.ru

Кто, что может по ним сказать?

Если на сайте Директ + Адсенс - этот "мусор" добавлять однозначно не надо, тк им как раз монетизируется плагины подмены рекламы и прочее malware.

Если на сайте стоят тизерки - надо смотреть и открывать нужные домены только для них.

dlyanachalas:
Ну понятно, "IN" - поиск по большому неупорядоченному условию ему не нравится.
kalim:
dlyanachalasМожет тут лучше подойдет какая-то другая технология?

Похоже, dlyanachalas прав на счёт "IN" - поиск по большому неупорядоченному условию". Проверить - легко, поменяйте условие в запросе

WHERE id in (4144, 5255, 6656, 9695, ...)

на

WHERE (id=4144 OR id=5255 OR id=6656 OR id=9695 OR id=...)

Тогда будет задействован индекс по id. Генерить строку с OR id= можно так же автоматически, если ваши id - в массиве $arr:

"WHERE id=".imlpode(" OR id=", $arr)

PS: А на счйт полей BLOB - 2 месяца назад решала аналогичную проблему с таблицей на 500 000 записей: у меня были поля ТEXT(по сути - те же BLOB, MySQL резервирует под них место большого размера, похоже, даже под пустые). А потом в этом огромном файле очень долго ищет даже по другим индексным полям, причём TEXT - даже не выбирались при SELECT. Вынесла их в другую таблицу и связала по ID - всё стало летать.

Sla:
гугл всё вываливал в фрейм без src - на него распространяются правила CSP и соответственно всё резалось по CSP)

У Гугла - да, наружный фрейм без src, а внутри него ещё 2 фрейма уже с scr. Там сам чёрт ногу сломит разбираться. Плюс, некоторые malvare вставляют свою рекламу прямо на место Адсенса, тк браузерному плагину доступны все iframe на странице.

Так что если что заметите подозрительное - вываливайте в топик не раздумывая, будем смотреть все вместе, мы - в одной лодке.

PS: doubleclick.net - универсальная платформа показа рекламы, через неё может показываться не только Адсенс. Любой желающий может подключиться и крутить свою рекламу на этой платформе, она ведёт учет показов, кликов, меряет конверсию и тп.

Так, что там тоже могут быть сюрпризы.

big boy:
Может дело в том, что не в .htaccess вставляю, а в php (в index.php CMS)?

Разницы между PHP и .htassess - никакой. Надо только, чтобы CSP вставлялась на все страницы сайта, а не только на морду. htaccess гарантированно вставляет на все, даже на админку сайта, что не всегда хорошо.

Для Адсенса надо:

font-src:		
добавить *.gstatic.com
fonts.googleapis.com заменить на *.googleapis.com
https://fonts.googleapis.com заменить на https://*.googleapis.com
https://fonts.gstatic.com заменить на https://*.gstatic.com

frame-src:
добавить *.googleadservices.com
добавить https://*.googleadservices.com

img-src:
добавить *.2mdn.net
добавить *.googleapis.com
добавить *.gstatic.com
добавить https://*.2mdn.net
добавить https://*.doubleclick.net
добавить https://*.googleapis.com
добавить https://*.gstatic.com

script-src:
добавить https://*.gstatic.com

style-src:
добавить *.gstatic.com
добавить https://*.gstatic.com

Если кроме Адсенса другой рекламы на сайте нет, смело убирайте из всех директив:

*.adeasy.ru
adeasy.ru
am15.net
*.am15.net
*.100im.net
100im.net
cityads.ru
*.cityads.ru
ads.actionteaser.ru
adforce.ru
*.adforce.ru
advapi.ru
*.advapi.ru
https://advapi.ru
https://*.advapi.ru
*.1tv.ru
*.adsniper.ru
*.kavanga.ru
*.bubblesmedia.ru
*.actionteaser.ru

PS: На счёт *.twitch.tv - не знаю, разве что вы их фильмы на сайте показываете.

kalim:
есть поле BLOB с бинарными данными 90-150 байт.

Поле BLOB в таблице на 2 млн записей - очень плохо, будет тормозить. Попробуйте преобразовать его в VARCHAR(255) и писать туда бинарные данные, кодированные в base64, 150 байт - туда войдут.

Или нормализовать данные из BLOB в отдельную таблицу.

big boy:
Итак, почти 14 часов прошло с установки CSP. Доход adsense упал.
Осталось докрутить для адсенса. Мне кажется, что режу что-то нужное, но еще не нащупал.

Уберите из CSP ваш домен и покажите в топике или в личку.

big boy:
adhigh.net - чей это зверь? Просится часто. Такие вариации, как ft7-de.adhigh.net, ft8-de.adhigh.net, px.adhigh.net и тд.

Это ребята из getintent.ru, RTB-сеть

big boy:

И вопрос. Нужно ли дублировать адреса c http и без? https понятно, что надо, а такая запись:

ytimg.com
и
http://ytimg.com
не является ли дубляжом?

Является дубляжом, но это не ошибка - работать будет. Домен без протокола считается с http://

big boy:
Если убрать 'unsafe-inline' 'unsafe-eval', то наверное так безопаснее, зато сайт перестаёт работать. Не загружаются родные скрипты, шаблоны рвуться, функционал не работает (тот же wysiwyg глючит).

Как быть?

Прописывайте 'unsafe-inline' 'unsafe-eval' в директиве script-src и 'unsafe-inline' в style-src.

unsafe-inline - используют Директ и Адсенс, и скорее всего - ваш сайт (onClick='' в тэгах)

unsafe-eval - используют Директ и Метрика.

Обойтись без 'unsafe-inline' и 'unsafe-eval' можно только на сайте, где нет рекламы, например, сайтах-визитках организаций.

---------- Добавлено 23.02.2015 в 19:40 ----------

Sla:
Это не так. Как минимум, часть показов сторонних сетей адсенс показывает не в iframe. И эти показы режутся CSP.
Покажите эти домены/url, из тех, что которые режутся CSP и принадлежат "сторонним сетям адсенс"
big boy:
Почему-то после настройки csp видео с тытрубы через <iframe><embed> работает, а через <object> не хочет. Настройки для youtube у object-src и frame-src совпадают.

Тогда почему один метод пашет, а другой нет?

В репортах пусто.

Настройки Ютуба под iframe и object - совершенно разные и по доменам и по директивам CSP. И В репортах не должно быть пусто.

Sla:
Пока ясно одно - часть показов сторонних сетей гугл крутит так, что они будут резаться CSP. Это однозначно должно снижать доходность AdSense.

Резаться они не будут, тк Андсенс показывает их в iframe. Скрипты внутри iframe вы не сможете резать своей CSP.

Всего: 4257