Перейти к публикации

Досс пост запросами python-requests - как побороть?


Рекомендованные сообщения

Столкнулся с доссом сайта пост запросами. Обычными средствами заблокировать не получается. Суть в том, что с каждого ип посылается всего 2 запроса, после чего ип меняется. Досс идет постоянный уже полгода. Пока использую временное средство.

 

Пример запросов к сайту в логах:

50.68.60.24 - - [25/Dec/2018:23:26:03 +0200] "POST /index.php?name=search HTTP/1.0" 403 211 "-" "python-requests/2.19.1"
50.68.60.24 - - [25/Dec/2018:23:26:03 +0200] "POST /index.php?name=search HTTP/1.1" 403 193 "-" "python-requests/2.19.1"
2601:345:8301:ee50:d87c:f6bf:ea18:25eb - - [25/Dec/2018:23:26:04 +0200] "POST /index.php?name=search HTTP/1.0" 403 211 "-" "python-requests/2.12.4"
2601:345:8301:ee50:d87c:f6bf:ea18:25eb - - [25/Dec/2018:23:26:04 +0200] "POST /index.php?name=search HTTP/1.1" 403 193 "-" "python-requests/2.12.4"
65.131.250.141 - - [25/Dec/2018:23:26:04 +0200] "POST /index.php?do=search HTTP/1.0" 403 211 "-" "python-requests/2.19.1"
65.131.250.141 - - [25/Dec/2018:23:26:04 +0200] "POST /index.php?do=search HTTP/1.1" 403 193 "-" "python-requests/2.19.1"

Сейчас по таким запросам отдается 403 костылем в .htaccess 

 

RewriteCond %{REQUEST_METHOD} POST
RewriteRule ^(.*/)?index.php$ - [L,F]

Проблемка костыля в том, что перестает работать поиск на всех страницах сайта, кроме главной.

 

Есть ли другое решение этой проблемы? Возможно в сервисе клоудфларе есть какое то решение? Буду всем признателен за советы.

 

сайт лицензия - soaptv.me

Ссылка на сообщение
Поделиться на других сайтах

Замените вызов поиска другим параметром.

Не search, а, например find и исправьте соответствующую секцию в engine.php и посмотрите где еще он используется.

Таким образом восстановите поиск.

 

Ссылка на сообщение
Поделиться на других сайтах

Даже не представляю как это сделать. Не силен в пхп. Да и не хотелось глобально лезть в файлы движка.

Средствами htaccess  ничего нельзя придумать?

Ссылка на сообщение
Поделиться на других сайтах
1 час назад, MSK сказал:

Замените вызов поиска другим параметром.

Не search, а, например find и исправьте соответствующую секцию в engine.php и посмотрите где еще он используется.

Таким образом восстановите поиск.

 

Это не поиск, у поиска другой url

Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, yponec сказал:

Даже не представляю как это сделать. Не силен в пхп. Да и не хотелось глобально лезть в файлы движка.

Средствами htaccess  ничего нельзя придумать?

Просто заблокируйте реферера:

python-requests
Изменено пользователем INFORMLINE
Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, Gameer сказал:

Это не поиск, у поиска другой url

как так другой???

 

65.131.250.141 - - [25/Dec/2018:23:26:04 +0200] "POST /index.php?do=search HTTP/1.0" 403 211 "-" "python-requests/2.19.1"
65.131.250.141 - - [25/Dec/2018:23:26:04 +0200] "POST /index.php?do=search HTTP/1.1" 403 193 "-" "python-requests/2.19.1"
switch ( $do ) {
	
	case "search" :
		
		if ($_REQUEST['mode'] == "advanced") $_REQUEST['full_search'] = 1;
		include (DLEPlugins::Check(ENGINE_DIR . '/modules/search.php'));
		break;

https://dle-news.ru/?do=search

 

а с 

index.php?name=search

вернется главная страница

2 часа назад, yponec сказал:

Средствами htaccess  ничего нельзя придумать?

уже сделали :)

Необходимо на стороне сервера (nginx или apache) настроить фильтр по заголовкам User-Agent . За этим вам будет проще обратиться к хостеру.

 

Ссылка на сообщение
Поделиться на других сайтах
12 минут назад, MSK сказал:

 


index.php?name=search

вернется главная страница

уже сделали :)

Необходимо на стороне сервера (nginx или apache) настроить фильтр по заголовкам User-Agent . За этим вам будет проще обратиться к хостеру.

 

Можно просто так :

 

## Бан User-Agent
SetEnvIfNoCase User-Agent "^python-requests/2.19.1" bad_bot
SetEnvIfNoCase User-Agent "^python-requests/2.12.4" bad_bot

SetEnvIfNoCase User-Agent "^Еще Агент" bad_bot

SetEnvIfNoCase User-Agent "^Еще Агент" bad_bot
<limit get="" post="" head="">
 Order Allow,Deny
 Allow from all
 Deny from env=bad_bot
</limit>

 

Вместо "Еще Агент" пишите названия User-Agent которого нужно блокирнуть.

Изменено пользователем INFORMLINE
Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, INFORMLINE сказал:

## Бан User-Agent
SetEnvIfNoCase User-Agent "^python-requests/2.19.1" bad_bot
SetEnvIfNoCase User-Agent "^python-requests/2.12.4" bad_bot

SetEnvIfNoCase User-Agent "^Еще Агент" bad_bot

SetEnvIfNoCase User-Agent "^Еще Агент" bad_bot
<limit get="" post="" head="">
 Order Allow,Deny
 Allow from all
 Deny from env=bad_bot
</limit>

 

Пробовал - не работает. Видать хостер как то сервак не так настроил. Отписал ему с этим примером - посмотрю что ответит.

Ссылка на сообщение
Поделиться на других сайтах

Хостер прислал рабочий вариант. Хостинг от Кемел.

 

рабочий вариант для кемела
SetEnvIfNoCase user-Agent "python-requests/2.19.1" bad_bot
SetEnvIfNoCase user-Agent "python-requests/2.12.4" bad_bot
SetEnvIfNoCase user-Agent "SemrushBot" bad_bot
<Limit GET POST HEAD>
Order Allow,Deny
Allow from all
Deny from env=bad_bot
</limit>

Теперь поиск работает. Пауки доссеры получают 403.

Всем спасибо.

Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
×
×
  • Создать...