Как правильно определять поисковых ботов?

scooterok

Новичок
Не секрет, что юзер агент можно подделать.
Есть ли идеи как идентифицировать реального поискового бота?
Пишу скрипт парсинга логов сервера и нужно отсеять разный мусор с целью борьбы с взломами.
Важно при получении информации, что якобы юзер агент является ботом, сверять скажем по айпи адресу так ли это...
Может есть какая-то БД в файле айпишек которые принадлежат поисковикам, ведь отправлять запросы каждый раз в whois чревато баном, а платные брать дорогое удовольствие.
Кто, чего посоветует? :)
 

scooterok

Новичок
Нашел решение, кому интересно с помощью функции gethostbyaddr()
Уже не актуально...
 

antson

Новичок
Партнер клуба
@scooterok, gethostbyaddr() - только есть грабли. После определенного числа запросов днс начнет игнорить запросы и функция будет 5 секунд ждать ответа
 

scooterok

Новичок
@scooterok, gethostbyaddr() - только есть грабли. После определенного числа запросов днс начнет игнорить запросы и функция будет 5 секунд ждать ответа
Какие будут предложения?
Благодарю, что предупредили, значит будем по ходу делать список IP, чтоб повторно не проверять.
 

AmdY

Пью пиво
Команда форума
http://bfy.tw/7hLV

точно так же можно найти готовый скрипт для парсинга логов.

Хотя не понимаю, зачем тебе ботов отсеивать, если ты ищешь попытки взлома.
 

scooterok

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

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

Хотя не понимаю, зачем тебе ботов отсеивать, если ты ищешь попытки взлома.
потому-что боты не взламывают сайты, если это реально боты поисковые, а не фикция ;)
В принципе это делается, чтоб очистить "мусор", например зачем мне записи поисковых ботов, с моих айпи, с айпи сервера (в отдельных случаях), например при крон заданиях...

Таким образом значительно сокращается список и больше можно разглядеть конкретики, последовательности юзера и т.п.
 

scooterok

Новичок
То, что я хочу сделать это сравнивать юзерагент с айпи, в плане принадлежит ли конкретный айпи боту указанному в юзерагенте.
Если принадлежит, значит в список не выводим, если не принадлежит, то выводим, возможно выделяем, чтоб разобраться, обратить на эту запись внимание...
 

scooterok

Новичок
gethostbyaddr() - только есть грабли. После определенного числа запросов днс начнет игнорить запросы и функция будет 5 секунд ждать ответа
А можно уточнить, если Вы в курсе конечно, игнорить в плане приостанавливать сценарий до получения результата или пропускать и выдавать пустой результат? Это важный момент, в плане, что надо это будет тоже учесть...

Заранее спасибо)
 

scooterok

Новичок
@scooterok, тебя вообще не должен волновать user-agent, и ip ботов. Тебя должен волновать формат запросов, и их подозрительные виды.
это само собой, но я пишу код для удобства, зачем мне анализировать записи реальных поисковых ботов?
Я ж написал, цель чистка "мусора", лишнего, что не может быть априори подозрительным во взломе.
Когда всё мешается, тяжело, и долго по времени изучение и вывод истины!
Вот формат запросов, и их подозрительные виды будут чаще падать в глаза, если отсечь лишнее ;)
 

AmdY

Пью пиво
Команда форума
Ну вот смотри, кто-то размещает ссылку на твой сайт с инъекцией или роняющий yii в корку, бот её индексирует, заходит и роняет, а ты об этом даже не узнаешь, так как испугался парочки лишних записей в логе.
 

AmdY

Пью пиво
Команда форума
Ну и поисковых ботов могут быть любые айпишники, не обязательно прописанные на ya.ru или google.com
 

scooterok

Новичок
Ну вот смотри, кто-то размещает ссылку на твой сайт с инъекцией или роняющий yii в корку, бот её индексирует, заходит и роняет, а ты об этом даже не узнаешь, так как испугался парочки лишних записей в логе.
Да не испугался я)))
Всегда есть альтернатива посмотреть текстовый файл логов просто открыв его)
В основном взломы происходят через плагины известных CMS.
Я не первый день изучаю логи, но когда там каша, то трудно проследить действие злоумышленника, его порядок, по пунктам... С чего он начал, каким методом запрос был... и т.п. Плюс меня не интересует браузер и те вещи которые можно подделать, а там расписывается и версия и много чего лишнего.
Вот примерно так выглядит сейчас работа :)
 

scooterok

Новичок
Кстати из этой картинки видно обращение к robots.txt и при этом отсеивались уже поисковые боты. После проверки айпишки выяснилось, что это некий выделенный сервер на OVH, т.е. на лицо сканирование сайта под видом бота поискового. Такой айпи был занесен в черный список и больше не беспокоил)
Мне кажется это намного удобнее чем просматривать сам файл логов...
 

scooterok

Новичок
Плюс красным выделено это ссылки, открывающиеся в новом окне, проверять можно 1-им кликом айпи и страницу сайта... удобно)
 

antson

Новичок
Партнер клуба
А можно уточнить, если Вы в курсе конечно, игнорить в плане приостанавливать сценарий до получения результата или пропускать и выдавать пустой результат? Это важный момент, в плане, что надо это будет тоже учесть...
я с этим столкнулся опосредственно. Гдето тут на форуме есть мой вопрос и найдена причина.
Если коротко в .htaccess была строчка denyfrom в которой были перечислены несколько ип адрессов .
Вот кто бы мог подумать, что апач для такого правила будет неявно вызывать обратное разрешение имен ? В результате затрахавшись днс агавы посылал наш сервак с этими запросами лесом.
для меня это выглядело как задержка в 5 секунд в случайные моменты отрисовки страницы.

А что он там на возвращал увы не знаю.

p.s.
Для твоих целей думаю достаточно
обернуть стандартный вызов
функция мояпроверка(ип)
начало
статический массив
если ип в статическом массиве
вернуть значение из массива
кесли

запомнить микротайм
имя = вызов стандатной функции (ип)
выполнено = микротайм - начало
если выполнено более чем за 1 секунду
письмо тебе с количеством элементов массива как возможная квота сервака
статический массив [ип] = имя
вернуть имя
 
Последнее редактирование:

scooterok

Новичок
Сегодня еще арабские эмираты отправлены всей подсетью в бан за то, что ломились в админку)
Я думаю, я на правильном пути)
 
Сверху