ReadMe!不正投票マニュアル(2)
ReadMe!不正投票マニュアル(1)では「それをすると何が起こるのか」というのを一切書かずに具体的方法のみを記述したので、今回は「何が起きているのか」というメカニズム解説を。
ReadMe!は「カウント用アイコンが表示された回数でランキング」というシステムです。
<img src="http://readmej.com/readme.cgi?webmaster@tokix.net">
こんな具合にimgタグを使ってカウンタ用アイコン表示CGIを呼び出す訳です。
この「カウンタ用アイコンCGI」とはつまり「投票処理を行いアイコンを出力する」というモノなのですね。問題はこの「投票処理」です。CGIの「処理」は外部から見えません。出力結果(この場合ならアイコン)しか見えません。なので我々のような「ReadMe!スタッフでない人間」は「どのような処理が行われているか」という疑問には推測でしか答えられない訳です。ブラックボックス。
話が逸れていることに気付きつつ書くなら、ブラックボックスの中身を知るには正統的知識(例えばCGIを自分で組んだりした経験則)と実験結果を使うしかありません。逆の言い方をすれば正統的知識はいつも「ブラックボックスへのちょっとした好奇心」に向かい「イタズラの計画」に向かう(カッコつけてみました)。
何度再読込(リロード)されても1回しか集計しません
たまに「順位を上げたいのでリロードしてください」と書かれているページを見かけますが、これは勘違いをされています。ReadMe!では、同じ人が一日のうちに何度アクセスしても1票しかカウントしません(翌日になったら、また1票カウントします)。
この説明は具体的にはこういうことです。
同じIPアドレスからの投票は一日一票まで
もちろん「100%そうなの?」と言われたら「知るか」としか返せません。「ブラックボックス」ですから。
「プロキシ」というものに対するよくある見解。
- 匿名だぜ匿名
- バカ、匿名じゃないんだよ
プロキシは「見かけのIPアドレスを一番手軽に変更する手段」です。とりあえずそれは間違いありません。
同じIPアドレスからの投票は一日一票まで
プロキシを使えば見かけのIPアドレスが変わります。ReadMe!不正投票マニュアル(1)の不正投票はそれを利用している訳です。もちろん手動でプロキシ設定を切り替えて再読込を押したっていいです。ただ普通に配布されているツールを使えば機械任せでできるんだ、と。
以下補足。
- なぜReadMe!不正投票マニュアル(1)のフレーム定義HTMLファイルをローカルに置くか
実際にプロキシリストを作成した経験がある人なら分かると思いますが、自分が作ったリストのプロキシが全て生きているという保証はありません。リスト作成から数日で既に死んでいる可能性があるからです。というか全てのプロキシが生きているなんてことはまずありません。
(1)で作ったHTMLファイルをローカルに置くのはこのためです。
ネット上に置いてしまうと、プロキシが死んでいた時にオートリロードが停止してしまいます。ローカルにあればプロキシが死んでいてもオートリロードは止まりません。フレームの中身(つまり自分のサイト)やReadMe!アイコンは読み込まれないですがフレーム定義ファイル自体は読み込まれる訳です。 - 何故IPアドレスで「同じ人」が識別されていると判断できるのか
「同じ人からの投票は一日一回」と言っても「ページを開いた人間の指紋で照合」なんて芸当は不可能です。なので普通は「同じPCからの投票は一日一回」「同じ回線からの投票は一日一回」といった方法を使います。
「同じPCから」ってのはCookieを利用します。ユーザーのPCにCookieデータを仕込みそのデータを根拠にする訳ですがReadMe!はCookieを使用していません。それは推測でなく事実です。ブラウザを「Cookieを受け入れる際にダイアログを表示する」という設定にすれば確認できます。
そして「同じ回線から」という判断はIPアドレスを根拠に行われます。
もちろん、第三の方法を使っている確率が0%な訳ではありません。それが「CGIはブラックボックスだ」ということであり「知識と実験で推測することしかできない」ということです。

TrackBack
この記事へのトラックバック