Как накрутить 40к просмотров на Хабрахабр. Баг или фича?



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

    Получалось, что к примеру к моменту публикации, статья уже могла иметь от 1 до N просмотров. Я решил проверить свою догадку, и создал тестовую статью, которую сохранил как черновик:



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



    Хорошо, а что если создать скрипт, который будет делать тоже самое, но без участия пользователя? Наиболее простым вариантом тут было бы использовать JavaScript и запустить исполнение прямо в браузере. Скачав плагин Tampermonkey, я набросал в нём небольшой скрипт:

    // ==UserScript==
    // @name         New Userscript
    // @namespace    http://tampermonkey.net/
    // @version      0.1
    // @description  try to take over the world!
    // @author       You
    // @match        https://habrahabr.ru/*
    // @grant        none
    // ==/UserScript==
    
    var postID = 322272;
    
    (function() {
        'use strict';
        // Your code here...
        setInterval(fakeEdit, 1000);
    })();
    
    function fakeEdit() {
        if (location.href.indexOf('post/' + postID.toString()) > 0)
            location.href = 'https://habrahabr.ru/topic/edit/' + postID.toString() + '/';
        else {
            text = document.getElementById('text_textarea');
            text.value = Math.random().toString(36).substring(2) +'\n'+ Math.random().toString(36).substring(2);
            to_draft = document.getElementsByName('draft')[0];
            to_draft.click();
        }
    }

    Что тут происходит:

    1. Мы запускаем бесконечный цикл с интервалом итерации в 1 секунду, цикл в свою очередь выполняет функцию fakeEdit
    2. Функция fakeEdit проверяет текущий адрес страницы:
      2.1. если на данный момент это страница редактирования, то мы изменяем содержимое поля text_textarea, в котором как раз расположен текст статьи, затем имитирует сохранение, путём клика по кнопке «В черновики»;
      2.2. если адрес текущей страницы содержит post, то переходим к редактированию статьи

    Таймаут тут нужен, для того, чтобы после загрузки страницы, все элементы успели прогрузиться. Запускаем и оставляем его на несколько дней. В результате через небольшой промежуток времени получаем примерно вот такой результат:



    Я не считаю описанное выше мной — уязвимостью, но всё же перед публикацией этой статьи, уведомил администрацию Хабра о таком нестандартном поведении счётчика, и вот их ответ:
    Здравствуйте!
    Приносим извинения за задержку с ответом. Счетчик просмотров, действительно, считает не только уникальные просмотры (собственно, как и подобные счетчики на большинстве ресурсов в сети Интернет). До вашего обращения нам не приходило в голову рассматривать это как уязвимость, ведь злоупотребить этим в нашем сообществе довольно трудно: если плохой материал попадет в «самое читаемое», то привлечет внимание большого числа пользователей, которые, в свою очередь, «сольют» рейтинг материала и карму автора, так что он сам себя накажет, а если попадет хороший, то и не жалко.

    Конечно каждый решает сам, использовать полученные знания или нет, но главное помнить, что у всего есть последствия. Я решил остановить скрипт на 40000 просмотрах, но вопрос о том есть ли предел, всё ещё остаётся, а так же что произойдёт при превышении этого передела?
    Поделиться публикацией
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама
    Комментарии 37
    • +2
      Я решил остановить скрипт на 40000 просмотрах, но вопрос о том есть ли предел, всё ещё остаётся, а так же что произойдёт при превышении этого передела?

      если там integer обычный то зае;%%сь крутить


      On 32-bit system, this would normally be 2147483647 (2.1 109). On a 64-bit system, it would usually be 9223372036854775807 (9.2 1018).
    • +18
      Не хочу вас разочаровывать, но вы открыли Америку…

      Накрутчик существует уже больше года
      image
      • +1
        Ну если на то пошло, то способ накручивания путём открытия over9999 соединений через прокси, для уже опубликованной статьи существует довольно давно. Тут речь именно об увеличении значения счётчика ещё до момента публикации статьи.
        • +12
          По-моему, это всегда было очевидно для любого, кто хоть раз пользовался функцией черновиков. А таких тут, наверное, большинство.
          • +2
            Если бы вы повозились с этой страницей еще, и не сейчас, а на пару лет раньше, то обнаружили бы, что за посты в черновиках можно было голосовать.

            Зачем это нужно? Создаете over 9000 черновиков и просите друга их плюсануть. У вас растет рейтинг, а количество публикаций нет ;-)
        • 0
          Интересно на эту статью тоже накрутили?:) 40к просмотров за 2 часа в выходной день
          • +3
            Ну если бы Вы посмотрели postID со скрипта ТСа и ID этой статьи, то такой вопрос бы не возник )
            • 0
              Да, в самом деле, не обратил внимания:)
            • 0
              В конце же автор написал об этом сам)
            • НЛО прилетело и опубликовало эту надпись здесь
              • 0
                Может быть так и есть. Но пожалуй единственная полезная лазейка с этим счётчиком — помочь статье получить реальные просмотры и отзывы. Ведь многие читают только топ или отдельные хабы… Статья написанная для узкой аудитории, не попавшая в самое читаемое, останется без фидбэка автору, потому что прочитают её 500 пользователей (если вообще прочитают, а не просто окинут взглядом, потому что тема то не их, а зашли посмотреть на картиночки).
                • НЛО прилетело и опубликовало эту надпись здесь
                  • 0
                    Просмотры не реальные, да, пока статья не попадёт в топ. Дальше же её увидит большая часть аудитории (которая не увидела бы её, если бы статья не преодолела планочку до «самого популярного». А отзывы почему не реальные?
                    Да и в случае с просмотрами, я сам так не стал бы так упарываться. Всё таки чит. Это было просто, как альтернативное мнение. Вы же слишком, кмк, вдаётесь в крайности. Наверное так же, как те, кто вам минус сделал, без комментариев.
                    • НЛО прилетело и опубликовало эту надпись здесь
                      • 0
                        Посты на Хабре часто имеют коммерческий интерес. Больше человек зашло, больше человек увидело рекламу.
                    • +1
                      -2 к карме, только за то, что написал человек который в этом реально смыслит?
                      Никто вашу карму не трогал.

                      • НЛО прилетело и опубликовало эту надпись здесь
                        • +1
                          Это рейтинг комментария. Он позволяет вам узнать мнение остальных.

                          На функционал сайта даже рейтинг –100500 никак не влияет.
                • +6
                  А в чём смысл накручивать просмотры? Если статья плохая — от этого пострадает только автор, получив бОльшее кол-во минусов в итоге, если статья хорошая — её прочитает больше людей. Кто в итоге в проигрыше? Другой вопрос если все начнут этим пользоваться и в топе будут каша…
                  Я лично смотрю на счётчик просмотров только у своих публикаций, для чужих мне это как то совершенно не важно.
                  • +2
                    Хотел задать аналогичный вопрос и имею аналогичный ответ. У своих публикаций смотрю, потому что хочется у знать, скольким людям они приглянулись. У чужих статей — даже не знал, что этот счетчик на что-то может повлиять.
                    • 0
                      Это имело смысл год или два назад, когда Хабрахабр заменил блок «Лучшее за 24 часа» на «Самое читаемое» и ваш пост висел на каждой странице на самом видном месте.
                    • НЛО прилетело и опубликовало эту надпись здесь
                      • НЛО прилетело и опубликовало эту надпись здесь
                        • +6
                          Спасибо, у нас свое.
                      • 0
                        По мне можно счетчик апнуть, добавить учет просмотров зарегистрированными пользователями. По отношению чисел можно примерно оценить возможность накрутки. Это все философия, я читаю что мне интересно и не важно в топе это или нет, тк за частую сморю или ленту или прихожу из поиска.
                        • +2
                          Тут выше упоминались рекламные статьи. На них можно заработать продавая количество просмотров? (или как-то так) Тогда такой счетчик явно уязвимость. В любом случае авторитет разработчиков в глазах пользователей может пострадать из-за такого непродуманного функционала.
                          • –3
                            А вы не страдаете от неправильного употребления терминов?
                            • –2
                              А с каких пор мы перешли из области программирования в область физики/математики?
                              • 0
                                Жду ссылку на определение функционала в программировании.
                                • 0
                                  В более широком смысле функционалом называется любое отображение из произвольного множества в произвольное (не обязательно числовое) кольцо.

                                  В общем-то осталось определить операции сложения, вычитания и умножения над фичами приложения.
                          • +3
                            просмотры нужно делать уникальными для одного пользователя, т.е. один пользователь может добавить к статье только 1 просмотр.
                            зарегистрированного пользователя идентифицировать по tm id
                            остальных пользователей идентифицировать методами, используемыми тут же рекламными площадками, даже наверное скрипты можно их же использовать.
                            • +1
                              Можно, но нужно ли? Процесс подсчета количества просмотров обрастает дополнительной логикой, которая требует к себе внимания, вплоть до потребления электричества. Это потенциальные опасности с производительностью, параллельностью… Все из-за «двух» человек, которых можно забанить, а можно не трогать, ведь сообщество кармой, в большинстве случаев, выполнит свое предназначение. Экономически не оправдано.
                              • 0
                                Счетчики уникальных посетителей, точно так же, ничего не говорят о том, кого из загрузивших страницу интересовал конкретный материал, а кто из посетителей случайно попал на нее по битой ссылке или поисковому запросу, не имеющему никакого отношения к ее содержанию (взять хотя бы историю про самую популярную статью в научном журнале) и сразу закрыл страницу. Т.е. оба рассматриваемых подхода не объективны. В чем тогда смысл использовать более ресурсоемкий?

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