CMS DataLife Engine - Система управления сайтами

yponec

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

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

Поделиться сообщением


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти