spam対策少しだけ強化

投稿者 akira 2005-04-14 15:02:00 GMT

前に書いたspam対策フィルタをトラックバックspamに対応させてみた。とは言っても、軽めのものが良いなと思っているのでリンク先を調べに行って何かするといったことはしていない。以下のチェックにひっかかったものをspamとみなし、コメントとトラックバックは非表示にして記録、リファラーは他にしようがないのでそのまま捨てている:

  • REQUEST_URIが/./
  • メールアドレスが明らかに不正
  • メールアドレス用のブラックリストにマッチする
  • コメント本文にhref=を含む
  • コメント本文にURIがたくさん含まれている(10個より多い、とか)
  • コメントのほとんどがURIで占められている(バイト数の割合)
  • コメント本文にURI用のブラックリストにマッチするURIが含まれている
  • トラックバックのURIがトップページ(http://example.jpとか)を指している
  • トラックバックのURIが明らかに不正
  • トラックバックのURIがHTTP(S)以外である
  • トラックバックのURIのホスト名をアドレス解決できない
  • トラックバックのURIのホストとトラックバックを送ってきたホストがまるで違う

コードはこんな感じ。これをspam.rbというファイル名でtdiary/filter以下(default.rbのあるディレクトリ)に置いて、はじめのほうでNGワードなどの設定をすれば使えるはず。ただしuriとresolvを使っているのでRuby 1.8以降でないとダメ。

追記(2005-06-30): もう少しだけいじって設定画面で調節できるようにした → こちら

追記(2005-07-01): mod_rubyを使っていて複数の日記を提供する環境での動作確認はしていないので、そういう環境ではうまく動かないことがあるかもしれない。

トラックバック

トラックバックリンク:
http://arika.org/diary/trackbacks?article_id=1433

  1. 昨日いじったspam対策フィルタをもう少しだけいじって設定画面で調節できるようにした。機能には変わりなし。ここにあるspam.rbをtdiary/filter/以下に置き、spam_config.rbをplugin/以下に置...
  2. 少しいじって、本文中のURLだけじゃなく本文そのものにマッチさせるNGワードを設定できるようにした。それとIPアドレスでの制限もできるようにしてみたつもり(そんなのHTTPサーバレ...