東大生ブログランキング考

広告

ボルシチが大変と聞いて、現役スレ(【大波乱】東京大学185学期【ブログランキング】)を見てみたのだけど、そうしたらブログランキングで相変わらず不正とかいう話題が多かった。

FirefoxというWebブラウザを使っているならLive HTTP Headersというアドインをいれるか、HTTP Debuggerなどの単にHTTPリクエストを片っ端からログに記録するプロキシでも使えばどういう通信がなされているか記録できる。

で、ブログの投票ボタンを押すと何が起きるかというと

ランキングボタンをクリック

http://sudeni.todai.in/ranklink.cgi?id=onaneet

GET /ranklink.cgi?id=onaneet HTTP/1.1
Host: sudeni.todai.in
User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; ja-JP-mac; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: ja,en-us;q=0.8,en;q=0.5,ko-kr;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: Shift_JIS,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: https://www.onaneet.org/blog/

HTTP/1.x 200 OK
Date: Sat, 08 Aug 2009 10:36:45 GMT
Server: Apache
Keep-Alive: timeout=3, max=10
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html; charset=shift_jis

中間ページをクリック

http://sudeni.todai.in/ranklink.cgi?ssd=EULx50n3&id=onaneet

GET /ranklink.cgi?ssd=EULx50n3&id=onaneet HTTP/1.1
Host: sudeni.todai.in
User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; ja-JP-mac; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: ja,en-us;q=0.8,en;q=0.5,ko-kr;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: Shift_JIS,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: http://sudeni.todai.in/ranklink.cgi?id=onaneet

HTTP/1.x 302 Found
Date: Sat, 08 Aug 2009 10:36:46 GMT
Server: Apache
Set-Cookie: IN=onaneet<>;expires= Sat, 8-Aug-2009 20:00:00;
Set-Cookie: OUT=;expires= Sat, 8-Aug-2009 20:00:00;
Location: http://sudeni.todai.in/index.shtml
Keep-Alive: timeout=3, max=8
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html; charset=iso-8859-1

ブログランキングページが読まれる

http://sudeni.todai.in/index.shtml

GET /index.shtml HTTP/1.1
Host: sudeni.todai.in
User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; ja-JP-mac; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: ja,en-us;q=0.8,en;q=0.5,ko-kr;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: Shift_JIS,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: http://sudeni.todai.in/ranklink.cgi?id=onaneet
Cookie: IN=onaneet<>; OUT=

HTTP/1.x 200 OK
Date: Sat, 08 Aug 2009 10:36:46 GMT
Server: Apache
Keep-Alive: timeout=3, max=8
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html

中間ページでのアクセスでSet-Cookie: IN=onaneet<>;expires= Sat, 8-Aug-2009 20:00:00;している。ここでIN=onaneetをcookieに食わせている。HTTPのステータスは302なので、Location: http://sudeni.todai.in/index.shtmlに従ってブログランキングのページにアクセスをする。そのときにcookieを見て、IN=onaneet<>があるので既に投票済みとみなされる。

じゃあ、何度も投票したいならどうするか?それは簡単、cookieを削除すればいいんだ。どうも他にもIPアドレスでのチェックやセッションIDを使うなどして不正投票を阻止しているようだけど、穴はあるよね。

追記:おいらは自分で毎日ぽちしていますが、それ以上の得点工作はしておりません。