Habrahabrで40kビューを巻き上げる方法。 バグまたは機能?





良い日、上のスクリーンショットは記事の出版の直前に撮られました、そして今日それは議論されます。

Habréで記事を作成および公開する過程で、ビューカウンターの非常に興味深い機能に気付きました。 これは、まだ公開されておらずドラフトとして保存されている記事を編集するたびに、カウンターが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が含まれている場合、記事の編集に進みます


ここでタイムアウトが必要なので、ページをロードした後、すべての要素にロードする時間があります。 開始して、数日間放置します。 その結果、しばらくしてから次のような結果が得られます。







私は上記のことを脆弱性とは考えていませんが、この記事の公開前に、Habr政権にそのような非標準のカウンターの動作を通知しました。その答えは次のとおりです。

こんにちは

応答の遅れをおaび申し上げます。 実際、ビューカウンターは一意のビューのみをカウントしません(実際、インターネット上のほとんどのリソースの同様のカウンターのように)。 申し立ての前に、これを脆弱性と見なすことはありませんでした。コミュニティでこれを悪用するのは非常に難しいからです。悪い素材が「最も読みやすい」バージョンに分類されると、多数のユーザーの注意を引き付け、ユーザーの評価を「マージ」します作者のカルマです。そうすれば彼は自分自身を罰します。もし彼が良くなったら、それは残念ではありません。


もちろん、習得した知識を使用するかどうかは誰もが自分で決めますが、覚えておくべき主なことは、すべてが結果をもたらすということです。 40,000回のビューでスクリプトを停止することにしましたが、制限があるかどうかの質問はまだ残っており、この再配布を超えた場合はどうなりますか?



All Articles