Отсечь ботов и не потерять юзеров

12
Y
На сайте с 29.05.2006
Offline
134
#11
Kaavain #:

Есть подозрение, что 99% useragent ботов содержит подстроку "http" как часть ссылки на своих хозяев.

Нет, это в основном у "вежливых" ботов, которые ходят аккуратно и читают robots.txt, есть много ботов с чисто браузерными user agent (например, очень агрессивный американский с abovenet, ищущий картинки ) или просто оставленными от curl и подобного.

Aisamiery
На сайте с 12.04.2015
Offline
293
#12
Вам правильно подсказали, стартуйте сессию только если в куках есть идентификатор сессии, а там где нужна сессия там добавляйте идентификатор, например при добавлении в корзину и прочих действиях для чего сессию используете.
Разработка проектов на Symfony, Laravel, 1C-Bitrix, UMI.CMS, OctoberCMS
WS
На сайте с 01.11.2008
Offline
135
#13

скорее костыль, но вполне рабочий, почти все юзеры ходят через http/2,  http/3, а вот боты через http/1.x, протокол лежит в $_SERVER['SERVER_PROTOCOL']

ps: bing отщепенец и большой оригинал, ходит через http/2

WS
На сайте с 01.11.2008
Offline
135
#14

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

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

Y
На сайте с 29.05.2006
Offline
134
#15
Владимир #:
боты через http/1.x ... боты этот запрос не сделают

Не нужно недооценивать современные боты, они давно научились выглядеть и всё делать как юзеры!

Kaavain
На сайте с 28.07.2015
Offline
133
#16
Короче я решил с другого конца. Подпилил код, чтобы проверка на ботов происходила однократно при первом хите (то есть если юзер принимает куки, то больше не проверять, а хранить сессию - пусть туда попадут и боты, думаю 99% их не принимают куки).
Могу порекомендовать только хостинг: https://traf.at/vps - за 3 года все на 4++ и цены не подняли. Ну и банк для белых ИП: https://traf.at/bankm
D
На сайте с 28.06.2008
Offline
1101
#17

Я сделал это решение 7 лет назад, пользуюсь до сих пор, проверено временем, 90% ботов курят в стороне.  Глупо пускать ботов на уровень PHP и проверять там, когда можно сделать в разы быстрее на уровне Nginx


https://searchengines.guru/ru/forum/954988/page2#comment_14885499

Попробуйте делать защиту от DDOS, чтобы не навредить поисковикам - Администрирование серверов - Сайтостроение
Попробуйте делать защиту от DDOS, чтобы не навредить поисковикам - Администрирование серверов - Сайтостроение
  • 2024.01.17
  • searchengines.guru
Сканирует пачками примерно по 100 страниц с одного ip. location что означает что вы не то что разное ограничение по разным сайтам можете накидать. просто вам в директиву limit zone нужно попробовать помимо IP пропихнуть еще хост
Kaavain
На сайте с 28.07.2015
Offline
133
#18
Dram #:

Я сделал это решение 7 лет назад, пользуюсь до сих пор, проверено временем, 90% ботов курят в стороне.  Глупо пускать ботов на уровень PHP и проверять там, когда можно сделать в разы быстрее на уровне Nginx


https://searchengines.guru/ru/forum/954988/page2#comment_14885499

Не, не рискну. Да и пусть ходят, что мне с того. Главное чтобы папка с сессиями не пухла.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий