トップ «前の日記(2004-10-11 (Mon)) 最新 次の日記(2004-10-15 (Fri))» 編集   RSS 1.0 FEED  

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のフィルタとかでできるかも。