[http://www.google.com/codesearch:title=Google Code Search]でメールアドレスが収集される

数日前にGoogle Code Searchで脆弱性のあるコードを検索できる脅威というのがニュースになっていましたが、個人的にはバグが早く見つかっていいんじゃないのーと楽観的に考えていました。
脆弱性が見つかったからといって、それを使っているマシンが見つかるとは限らないし、すぐ見つかるほどよく使われているようなソフトは、Google検索で見つかるような脆弱性は持っていないだろうと考えていたからです。
ウェブアプリならGoogleで検索できてしまいそうなので脅威ですけどね……


と思っていたところ、 Google Valid Email Search « Raphaël Slinckx の記事を見つけました。
Google Code Searchを使って簡単にメールアドレスが収集できるようで、スパムメール恐怖症な自分としては脅威なわけです。
コードの開発者を検索できるGoogle Code Searchは、開発者のメールアドレスも検索できます。このメールアドレスは、有効である可能性が非常に高く、メールアドレスの保有者がソフトウェアエンジニアであることがあらかじめ分かっているため、スパムメールと判断するのが困難なスパムメールを送信できる可能性があります。


あ、でもコンパイラの紹介メールなら、そんなに嫌じゃないかも。


ネタ元で『@』や『.』を別の文字に置き換えて表示するという案が出ていますが、Google Code Searchを使ってメールアドレスを収集する気があるのなら、置き換えてあるパターンで検索して後で復元すればいいだけなので意味がありません。
結局のところ、スパマーに収集されることは諦めて、届いたメールをフィルタリングするのがスパムに対する正しい防衛策のようです。


つまり、GMailを使えってことです。

検索パターン

シンプル


< .*@.*\.jp>

精度を上げたつもり


[\w.\-]+@[\w.\-]+\.jp[^\w]

抽出機の例

$ curl 'http://www.google.com/codesearch?hl=en&lr=&q=%5B%5Cw.%5C-%5D%2B%40%5B%5Cw.%5C-%5D%2B%5C.jp%5B%5E%5Cw%5D&btnG=Search&num=100&start='| perl -ne '/[\w.-]+@[\w.-]+\.jp/ and print $&,"\n"';

start=100, 200, 300 ... 40000 と、for文で回せば一括で収集されます。