Как стать автором
Обновить

ЯндексБот ходит по ссылкам, по которым ходит пользователь

Время на прочтение6 мин
Количество просмотров71K
Сегодня утром к нам в поддержку сайта знакомств написала девушка и сообщила, что она появляется у мужчин в списке «она вас посмотрела», хотя она точно не смотрела. И не пользовалась в это время компьютером. По цепочке это обращение дошло до меня. Расскажу, что мне получилось установить.

В качестве небольшого отступления расскажу кратко о себе. Я, в числе прочих дел, занимаюсь серверной и админской частью на небольшом сайте серьезных знакомств. Сайт небольшой, и на нем, конечно же, есть рассылки на почту пользователям (новые письма, новые пользователи). Чтобы не звучало «спамеры», уточню, что все рассылки на 100% соответствуют COI модели — одобрены пользователем, он всегда и везде может от них отписаться, если получили «отлуп (bounce)», то автоматически блокируем ящик и т.д. Несколько лет назад на нас сильно обиделся Spamhaus и опыт общения с ними мне запомнился на всю эту жизнь. Поэтому корректность рассылок для нас крайне приоритетна.

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

Итак, посмотрев лог захода девушки, которая к нам обратилась, я увидел только за сегодняшний день (на 8 часов утра) 11 заходов на сайт с ip 178.154.243.78 и юзер-агентом Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots). По whois ip-адрес действительно принадлежит Yandex LLC. Смотрю аккаунт девушки — почта на yahoo.com. Ищу заходы самой девушки по логам — нашел, юзер агент — Opera/9.80 (Windows NT 6.1; Edition Yx) Presto/2.12.388 Version/12.15, т.е. десктопная Opera, собранная Яндексом (Edition Yx). Вариантов, откуда Яндекс узнал о существовании 11 разных приватных ссылок, два.
1) Девушка заходила по этим ссылкам и Опера «стучала» об этом в Яндекс;
2) Она смотрела почту Yahoo через Оперу, используя сжатие данных, и Яндекс при проксировании (у девушки оно включено) собирал все ссылки, которые там были, для дальнейшего «использования». Опрос девушки подтвердил — Опера от Яндекса, сжатие данных, почта Yahoo. Но, забегая вперед, скажу, что больше доверяю 1-му варианту.

Продолжил копать. За 8 часов сегодняшнего лога nginx (11 часов по Москве, лог начинается с 0 по GMT), было 350 уникальных залогиниваний от ЯндексБота. Смотрю дальше — это всё оказалось по приватным ссылкам от 15 пользователей. Посмотрел двух случайных. Оба пользователя используют чистый Яндекс.Браузер. Без проксирования. Заходы ЯндексБота в аккаунт начались у всех 03.04.2015.

Решил найти наиболее «чистый» вариант. И нашел. У нас ссылки, которые мы даем, включают дату формирования письма. Поэтому не составляло большого труда (grep + awk) найти в логе nginx заходы из письма, который мы сегодня и отправляли пользователю.

Приведу лог nginx (ip юзера, сайт, точная ссылка изменены):

site.ru 1.1.1.1 - - [26/Jun/2015:08:12:18 +0000] "GET /member/detail/111111750?a=1&c=10000080000&v=11ebeedf6eeam4ihkdeb7540037b5ab7&mail=1435305126_60&t=1 HTTP/1.1" 200 6803 "-" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.152 YaBrowser/15.6.2311.4046 Safari/537.36" "-" 0.107 cs=-upstream: 192.168.106.14:7002 answer=200 response=0.107 0.107
site.ru 1.1.1.1 - - [26/Jun/2015:08:12:18 +0000] "GET /member/detail/111111750?a=1&c=10000080000&v=11ebeedf6eeam4ihkdeb7540037b5ab7&mail=1435305126_60&t=1 HTTP/1.1" 200 6803 "-" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.152 YaBrowser/15.6.2311.4046 Safari/537.36" "-" 0.092 cs=-upstream: 192.168.106.4:7002 answer=200 response=0.092 0.092
site.ru 1.1.1.1 - - [26/Jun/2015:08:12:30 +0000] "GET /member/detail/111111708?a=1&c=10000080000&v=11ebeedf6eeam4ihkdeb7540037b5ab7&mail=1435305126_60&t=1 HTTP/1.1" 200 6354 "-" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.152 YaBrowser/15.6.2311.4046 Safari/537.36" "-" 0.049 cs=-upstream: 192.168.106.12:7002 answer=200 response=0.049 0.049
site.ru 1.1.1.1 - - [26/Jun/2015:08:12:30 +0000] "GET /member/detail/111111708?a=1&c=10000080000&v=11ebeedf6eeam4ihkdeb7540037b5ab7&mail=1435305126_60&t=1 HTTP/1.1" 200 6331 "-" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.152 YaBrowser/15.6.2311.4046 Safari/537.36" "-" 0.030 cs=-upstream: 192.168.106.10:7002 answer=200 response=0.030 0.030
site.ru 1.1.1.1 - - [26/Jun/2015:08:12:45 +0000] "GET /member/detail/111111436?a=1&c=10000080000&v=11ebeedf6eeam4ihkdeb7540037b5ab7&mail=1435305126_60&t=1 HTTP/1.1" 200 6293 "-" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.152 YaBrowser/15.6.2311.4046 Safari/537.36" "-" 0.047 cs=-upstream: 192.168.106.18:7002 answer=200 response=0.047 0.047
site.ru 1.1.1.1 - - [26/Jun/2015:08:13:00 +0000] "GET /member/detail/111111053?a=1&c=10000080000&v=11ebeedf6eeam4ihkdeb7540037b5ab7&mail=1435305126_60&t=1 HTTP/1.1" 200 6630 "-" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.152 YaBrowser/15.6.2311.4046 Safari/537.36" "-" 0.030 cs=-upstream: 192.168.106.10:7002 answer=200 response=0.030 0.030
site.ru 1.1.1.1 - - [26/Jun/2015:08:13:08 +0000] "GET /member/detail/111110974?a=1&c=10000080000&v=11ebeedf6eeam4ihkdeb7540037b5ab7&mail=1435305126_60&t=1 HTTP/1.1" 200 6542 "-" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.152 YaBrowser/15.6.2311.4046 Safari/537.36" "-" 0.045 cs=-upstream: 192.168.106.12:7002 answer=200 response=0.045 0.045
site.ru 1.1.1.1 - - [26/Jun/2015:08:13:24 +0000] "GET /member/detail/111110878?a=1&c=10000080000&v=11ebeedf6eeam4ihkdeb7540037b5ab7&mail=1435305126_60&t=1 HTTP/1.1" 200 7651 "-" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.152 YaBrowser/15.6.2311.4046 Safari/537.36" "-" 0.102 cs=-upstream: 192.168.106.12:7002 answer=200 response=0.102 0.102
site.ru 5.255.253.141 - - [26/Jun/2015:08:13:26 +0000] "GET /member/detail/111111053?a=1&c=10000080000&v=11ebeedf6eeam4ihkdeb7540037b5ab7&mail=1435305126_60&t=1 HTTP/1.1" 200 6741 "-" "Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)" "-" 0.113 cs=-upstream: 192.168.106.4:7002 answer=200 response=0.113 0.113
site.ru 5.255.253.141 - - [26/Jun/2015:08:13:32 +0000] "GET /member/detail/111110974?a=1&c=10000080000&v=11ebeedf6eeam4ihkdeb7540037b5ab7&mail=1435305126_60&t=1 HTTP/1.1" 200 6651 "-" "Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)" "-" 0.161 cs=-upstream: 192.168.106.6:7002 answer=200 response=0.161 0.161
site.ru 5.255.253.141 - - [26/Jun/2015:08:13:34 +0000] "GET /member/detail/111111436?a=1&c=10000080000&v=11ebeedf6eeam4ihkdeb7540037b5ab7&mail=1435305126_60&t=1 HTTP/1.1" 200 6405 "-" "Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)" "-" 0.140 cs=-upstream: 192.168.106.10:7002 answer=200 response=0.140 0.140
site.ru 5.255.253.141 - - [26/Jun/2015:08:13:43 +0000] "GET /member/detail/111110878?a=1&c=10000080000&v=11ebeedf6eeam4ihkdeb7540037b5ab7&mail=1435305126_60&t=1 HTTP/1.1" 200 7764 "-" "Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)" "-" 0.117 cs=-upstream: 192.168.106.18:7002 answer=200 response=0.117 0.117

Можно видеть, что пользователь зашел из письма по 7 ссылкам и по 4-м из них практически сразу прошелся ЯндексБот.

В поисковой выдаче я результатов не нашел. Что Яндекс с ними делает, знает только Яндекс.

Мой личный вывод: Яндекс.Браузер и Опера от Яндекса собирают ссылки, по которым кликает пользователь. Они анализируются и по части ссылок проходится ЯндексБот. Началось это 03.04.2015.

Update от 19.07.2015
Хочу подтвердить слова работников яндекса из комментариев, что по ссылкам из почты бот не заходит. Это факт. Я проверил логи за несколько дней, и не нашел ни одного вхождения по ссылкам из Яндекс-почты их роботом.

Update от 19.07.2015
Взято ниже из комментария kukutz
В общем, это очень неприятная ошибка.
Вот комментарий пресс-службы:
Яндекс.Браузер собирает обезличенную статистическую информацию для улучшения качества Браузера, в которую включаются в том числе и адреса посещённых страниц. Это происходит только в том случае, если человек разрешил делать это в настройках программы (проставил галочку «Отправлять в Яндекс статистику использования»).
Из-за технической ошибки информация о некоторых таких страницах из Браузера попала в список, индексируемый роботом Яндекса. Мы уже исправили её для сайта, о котором было рассказано на Хабре, и в скором времени исправим ее полностью. Мы благодарны пользователю Хабрахабра за то, что помог найти эту ошибку


Update от 25.08.2015
Прошло 40 дней. Яндекс так данную «фичу/ошибку» исправил только для одного домена — который я им посылал. По всем остальным ходит как и раньше.
Теги:
Хабы:
Всего голосов 106: ↑95 и ↓11+84
Комментарии113

Публикации

Истории

Работа

Ближайшие события

15 – 16 ноября
IT-конференция Merge Skolkovo
Москва
22 – 24 ноября
Хакатон «AgroCode Hack Genetics'24»
Онлайн
28 ноября
Конференция «TechRec: ITHR CAMPUS»
МоскваОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань