ГлавнаяГлавная / Новости, 201707Новости, 201707 / Как НЕ накрутить рейтинг на ХабреКак НЕ накрутить рейтинг на Хабре

Как НЕ накрутить рейтинг на Хабре

Продолжаем исследовать сайтовый API Habrahabr и случайно находим изменения в механике начисления рейтинга.


КиТ Будь в СЕТИ!

Будь в СЕТИ! Каталог социальных сетей :: Будь в СЕТИ! - Добавить в избранное KiT - Keep-inTouch :: RSS-лента

Сети :: [Профессиональные] | [Зарубежные] | [Тематические] | [Молодежные] | [Детские] | [Медиа (игры, развлечения)] | [Знакомства] | [Купоны] | [Прочее]

Категории (метки) :: Авто | Музыка | Книги | Хобби | Профессии | Сообщества | Семья | Бизнес | Регионы | Спорт | * Статусы


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



Вступление

Хорошо, Хабр, ты ввел ограничение на 3 поста в день, но ты не можешь просто так запретить флуд в комментах. А как мы знаем, каждый комментарий — это витамины, белки и кальций потенциальные 0.1 рейтинга, которые в сумме дают примерно тот же объем, что и посты.


Вы могли подумать: 'Ааа, просто наплодить комментов с плюсиками и все… Ну так не интересно', а вот и нет — мы еще будем издеваться над API хабра и ловить веселые ошибки.


Итак, для этого рецепта нам потребуются: одна старая статья, чтобы не привлекать внимания, и проверенный аккаунт друга, которого будем толкать в топ.


Кстати, несмотря на то, что статья старая (аж полгода как), в самое обсуждаемое она все равно пролезает:


К счастью, это 'самое обсуждаемое', далеко не на фронт-пейдже висит, можно не переживать.


По сути, нам нужно два запроса: для размещения комментария и его одобрения.


API

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


Например, создавая комментарий из обычного браузера, мы отправляем следующий запрос, указывая в качестве action значение add:

Но если тоже самое делать из мобильной версии, которая идет с префиксом m. в пути сайта, то теперь action приобретает значение mobile_add:

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


Небольшое отступление.
Пытался посмотреть как сделано в iOS приложении хабра, но там оказалось все крайне серьезно и включен SSL Pinning, запрещающий подслушивание, который никак не обойти даже с помощью подложного root сертификата:

Сейчас пока пробую устроить харакири jailbreak своему айфону, чтобы получить возможность поиграться с API посредством , но это пока в процессе. Технически API вообще-то открыто, есть даже либа на и , но без token-а, выдаваемого хабром, ничего не получится. Либо просто найду Android устройство, но там тоже нужно колдунство.


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



А вот как выглядит структура голосования за комментарий в ней:



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


И уже можно успокоиться, запустить скрипт и пойти пить чай, но это же было бы скучно.
Будем играться с параметрами. Что если полю v поставить значение 100? Нет, пишет, что страница не найдена. А может -100? Тоже самое.


Вообще, habr на любое неправильное действие всегда возвращает 404:

Будь то ошибка в параметре или что-то еще. Нельзя понять, действительно ли страницы нет или ты просто где-то опечатался. Наверное, против хацкеров это и действенно, но удобно ли это было в процессе разработки сайта?


И все-таки в определенный момент хабр психанул:

Случилось это, когда v стало равно нулю. Я что-то такое в детском садике от воспитателя слышал, когда кидался хлебом на обеде.


И если при этом еще неправильный id комментария указать, то нас еще пожурят:


Из интересных моментов заметил, что номер комментария инкрементируется по 2, а не по единице.
То есть, если первый коммент идет со значением:



то следующий уже будет



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


Смертные грехи

Но как же без человеческого фактора. В этот раз я решил не скрываться и просто наклепать комментариев к своей старой статье, не пряча ее в черновики. И в этом была моя роковая ошибка.


У кого-то настолько запеклось от вида незаслуженных плюсов, что он не поленился пройтись и для каждого из 50(oh my god) комментариев поставить минус:


К счастью или нет, к тому моменту лавочку уже прикрыли, не успей я набрать даже десятка баллов. Заметил я это только после полного прогона скрипта, зайдя в профиль, чтобы насладиться своей победой… но меня ждало только полное разочарование.


Естественно, я решил это просто так не оставлять и направился прямиком в саппорт c вопросом, куда делся мой рейтинг, который я так усердно накручивал. И вот что мне ответили:


Судя по всему, 'не столь ощутимо' теперь означает 'вообще никак'.


Если серьезно, то на прямой вопрос о том, сколько теперь привносят рейтинга комментарии, саппорт ответил: 'Мы не уполномочены разглашать данную информацию'.


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


Если у вас есть какая-либо информация об этом, то буду рад услышать.


Заключение

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


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


UPD1: Номера комментариев идут через 2 для совместимости с Geektimes: на Хабре четные, на Geektimes нечетные. Спасибо за .
UPD2: Подъехало особое мнение насчет инкремента id. Говорят, что это обусловлено конфигурацией MySQL. Спасибо и за инфу.
Буду благодарен за пруфы, если кто-то может их предоставить.
UPD3: Но мне больше импонирует мнение:

, ,



«Вконтакте» недоступна для всех пользователей. Причина сбоя

Социальная сеть «Вконтакте» переживает масштабный сбой. Первые проблемы пользователи начали обнаруживать около 14:50 по московскому времени, когда оказались недоступны любые сервисы ресурса. Пользователей встречала надпись «К сожалению, сервер времен...

Telegram привлек на первом этапе ICO 850 миллионов долларов

Мессенджер Telegram привлек 850 млн долл. на ICO, пишут «Ведомости». По информации издания, инвесторы купили права на внутреннюю криптовалюту проекта (Grams), но пока не будет запущена блокчейн-платформа TON, они обладают просто ценными бумагами. Со...

В Windows 10 появилась кнопка «разгона» ПК до максимума

В последних тестовых сборках ОС Windows 10 компания Microsoft реализовала новую схему питания Ultimate Performance, применение которой разгоняет производительность компьютера до максимума. Как сообщает компания в своем блоге, этот режим ориентирован ...

«Цифровая экономика» включит в себя транспорт и здравоохранение

Совет при Автономной некоммерческой организации «Цифровая экономика» рекомендовал включить программу два новых направления - цифровой транспорт и здравоохранение. Еще три заявки («Умный город», «Цифровое сельское хозяйство» и «Цифровое строите...

Основатель Qiwi вложил $17 млн в Telegram

Основатель и генеральный директор компании Qiwi Сергей Солонин принял участие в ICO (первичное размещение токенов — новых единиц криптовалют) мессенджера Telegram. Об этом он сам рассказал, выступая на инвестиционном форуме, проходящем в Сочи. ...

Комментарии

Нравится
Счетчики
хостинг от .masterhost Яндекс.Метрика

Главная | Новости | КАТАЛОГ | Контакты