« 牛乳を全部飲んだ | メイン | Windows Server に HDD を増設 »
2004年10月25日
Cookie のチェックを行うようにした
CEEK.JP NEWS において、一部 User Agent からの検索が合った場合は、クローラーと区別するために Cookie のチェックを行うようにしました。ご不便をおかけします。
というのは、メールアドレス収集ボットが鬱陶しかったから。このクローラーには、以下の特徴があります。
・OS: Windows 98
・ブラウザ: MSIE 6.0
・リンク先を全てクロール
これらの情報を基に調べていると、自分のアンテナに入っている ともちゃ日記 に Cookie を食べない。という情報が含まれていたので、同じ対策をするようにしました。
とはいっても、全ての方の Cookie をチェックするのもアレなので、上記条件に合致するブラウザ、OSの方のみチェックさせていただいてます。ので、クッキーを食べていないブラウザは、初回検索時に「Please confirm Cookie.」など、正しいかどうかわからない英文が少々表示されますので、リロードしてくださいな。
最初は、以下のようなソースを書いてました。
if ($ENV{'HTTP_USER_AGENT'} eq 'Mozilla/4.0 (compatible; MSIE 6.0; Windows 98)' && !$ENV{'HTTP_COOKIE'}) { print "Set-Cookie: Cookie=OK; Expires=Thu, 31-Dec-2099 23:59:59 GMT; path=/; domain=news.ceek.jp\n"; if (!$ENV{'HTTP_COOKIE'}) { print "Content-type: text/html\n\n"; print "Please confirm Cookie."; exit; } }
うひょー。これで Cookie 食わないブラウザをはじけるぜ。とか、思っていたんだが、よく考えると Cookie が環境変数に入るのは、アクセスした瞬間なんだから、2度目の HTTP_COOKIE の中身も、1度目と同じになることに後ほど気がついて凹んだ。つーことで、2度目の条件文は、省きました。
こんなこと書いて、メールアドレス収集ボットに対策されたらどうしようか。
2004年10月25日 15:23 | Development