2004-10-13 (Wed) [長年日記]
_ [ソフトウェア][mod_ruby] Referer spam対策
いい加減、個別の対策が面倒なので、以下のような対策を行った。
- 同一IPから同一Refererで10個を越えるアクセスがあったら Refererをブラックリストに登録。
- ブラックリストに登録したRefererは*.tdrから自動で削除 (高林さんのコードからパクった)。
- ブラックリストに登録されたRefererはHTTPヘッダから削除 (弾かないのはアンテナも引っかかっちゃうため)。
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のフィルタとかでできるかも。