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

Досс пост запросами 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.

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

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

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...