- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Переиграть и победить: как анализировать конкурентов для продвижения сайта
С помощью Ahrefs
Александр Шестаков
Я решил вопрос таким методом в NGINX, дополнительно отключив все логи для обработки такого запроса
location ~* /edit {
deny all;
access_log off;
log_not_found off;
error_log /dev/null;
}
По моему мнению самое правильное решение, если вы не хотите потерять своих пользователей. Только я закрыл запросы, которые заканчиваются на /edit или /edit/, т.к. есть страницы в админке типо /editor и они должны работать. Код получился такой:
Просмотрев логи видно, что post-edit идёт от реальных пользователей, которые приходят к вам на сайт. Т.е. вначале с этих IP идут нормальные запросы, переходы идут из поисковиков. Но похоже их машины заражены и дальше к нормальным запросам пользователей добавляются запросы post-edit. Чем мощнее комп и соединение пользователя, тем больше запросов. Наблюдал и по 10-15 запросов в секунду.
Борюсь с этим *** post-edit уже больше полугода. Делал анализатор, который при появлении такого запроса скидывал новый IP на почту. Дальше вручную (не хотелось автоматом случайно забанить роботов ПС) банил по IP через iptables. Так в течение месяца. Эффекта никакого этого не дало, постоянно появляются новые IP. Для мелких ресурсов с постоянной аудиторией может и помогло бы, но для 15к уников в день не помогло, каждый день новые IP. Напр. за вчера:
После перехода на новый сервер нагрузка от этих post-edit'ов особо нет. Но их наличие всё равно напрягает. В месяц они успевают делать под 1млн. запросов. Кроме post-edit ещё идёт post-спам на обычные страницы без /edit на конце. Тут походу надо копать как блокировать post-запросы со страниц, на которых нет форм обратной связи и прочего. Если у кого-нибудь есть решение и для этого - welcome.
Угу, сегодня ночью тоже приходил кто-то с мощной машиной и толстым каналом. 15 запросов в секунду, даже при заблокированном ip на уровне апача создают нехилую нагрузку. Это, конечно, надо фильтровать уже на уровне фаервола. Но на виртуальном хостинге такой возможности нет.
Конструкция
$ tail -n 100 access.log | grep "POST" | grep " 200 " | cut -d" " -f2 |sort|uniq -c |awk '{if($1>3){printf("Deny from %s\n",$2);}}' >> /path/to/.htaccess
по факту работает вполне неплохо.
Специально завел аккаунт тестовый на хостинге, там скрипт запускается раз в минуту, берет 100 последних записей из 8мегабайтного лога и каждый раз находит что сортировать и записывать в .htaccess. Нагрузка - 0CP, из 50 даваемых хостером. :)
0.01CP - это когда я лазил по FTP и SSH и проводил какие-то еще эксперименты.
Так что у меня оно запускается раз в 3 минуты, смотрит всего 20 последних строчек лога и отлично всех блокирует.
Поскольку сайт на WordPress, мне еще пришлось добавить в конструкцию
grep -v "wp-admin", а то он и меня банил, когда я в админке чего-то делал. :)
Админка все равно закрыта через htpasswd, там пофиг, когда кто-то ломится с ПОСТами. :)
От Post-edit спасает такое
# 403 for flooders
RewriteCond %{REQUEST_METHOD} =POST
RewriteRule .*/edit$ - [L,F]
А вот от Post спама лекарства пока не нашел. Постоянные перегрузки на сервер, а отрубить post для всего сайта - не выход. Комменты, авторизация в админке и пр... Неужели нет выхода?
А нет ли тут умельцев, способных написать скрипт, который раз в минуту делал бы "tail -n 500 лог.файл" и находя там больше 3 POST-запросов с одного ip добавлял его в .htaccess? :)
http://www.fail2ban.org/
Однако не советую банить IP за такие запросы, ко мне вот обратился пользователь с жалобой, что не может залогиниться на сайте, т.к. он становится недоступен... Оказалось, что fail2ban банил его и других таких же бедолаг за кучу этих мусорных запросов, о которых юзеры, естественно, ни сном ни духом...
Отключил логирование этого мусора, пытаюсь узнать у пользователя, какое расширение или приложение флудит (браузер Chrome).
http://www.fail2ban.org/
Однако не советую банить IP за такие запросы, ко мне вот обратился пользователь с жалобой, что не может залогиниться на сайте, т.к. он становится недоступен... Оказалось, что fail2ban банил его и других таких же бедолаг за кучу этих мусорных запросов, о которых юзеры, естественно, ни сном ни духом...
Отключил логирование этого мусора, пытаюсь узнать у пользователя, какое расширение или приложение флудит (браузер Chrome).
Спасибо, конечно, но уже все написано и даже в этой ветке выложено :)
Причем мое решение достаточно гибко настраивается, чтобы нормальных пользователей не банить. ;)
А fail2ban на виртуальном хостинге вообще не факт, что удастся запустить.
Не совсем по теме, но похожее.
С определенного айпи идет такое:
GET /favicon.ico HTTP/1.0" 200 0 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.76 Safari/537.36 OPR/16.0.1196.80
Переодичность 1раз в 6 секунд. Что это может быть? Забанить сложно так как айпи разные от одного провайдера, динамические.
Это типо Ддос такой или что-то другое? И как с этим бороться?
Может кто-то уже сталкивался.