Journal InTime


2004-10-13 (Wed)

_ [ソフトウェア][mod_ruby] Referer spam対策

いい加減、個別の対策が面倒なので、以下のような対策を行った。

  • 同一IPから同一Refererで10個を越えるアクセスがあったら Refererをブラックリストに登録。
  • ブラックリストに登録したRefererは*.tdrから自動で削除 (高林さんのコードからパクった)。
  • ブラックリストに登録されたRefererはHTTPヘッダから削除 (弾かないのはアンテナも引っかかっちゃうため)。

referer-spam-filter.rbの、

REFERER_DB = "/var/lib/apache2/referer-spam-filter/referer"
BLACKLIST_DB = "/var/lib/apache2/referer-spam-filter/blacklist"
DIARY_DIR = "/home/shugo/diary"

という部分を適当に編集してRubyライブラリの検索パスに置いて、 Apacheの設定に、

RubyRequire "referer-spam-filter"
<Directory /home/shugo/public_html/jit/>
  <Files *.rb>
    RubyAccessHandler RefererSpamFilter.instance
  </Files>
</Directory>

みたいに書いとくと動くかもしれません(無保証)。

mod_rubyで書いたけど、tDiaryのフィルタとかでできるかも。