2004-09-23 (木) [長年日記]
_ リファラ SPAM 129 件
とうとう私のところにも来てしまった。今回来たアドレスは1つだけだったが、今後のことも考え /sex|adult/ にマッチするリファラを制限することにする。ちょっと判定が甘い気もするが、違う SPAM が来た時はその都度ルールを追加すればよい。
まず、すでに書き込まれてしまった SPAM だが、tdr を直接書き変えるのも何なので、以下のようなプラグインで対処する。
# hide_referer.rb eval( <<-TOPLEVEL_CLASS, TOPLEVEL_BINDING ) module TDiary module RefererManager def remove_referer( ref ) uref = CGI::unescape( ref ) @referers.delete( uref ) end end end TOPLEVEL_CLASS if @mode != 'edit' then @diaries.each_value do |diary| limit = diary.count_referers diary.each_referer( limit ) do |count, ref| diary.remove_referer( ref ) if /sex|adult/ =~ ref end end end
eval を使うと人間をダメにする好例のようなプログラムだが、これを使うと編集時以外は対象のリファラが非表示になる。編集時だけ表示されるようになっているのは、どんな SPAM が来たのか見たい時もあるかもしれないからである。
次に、これから来る SPAM の対策だが、tDiary のフィルタ機能を使って以下のように対処する。
# spam.rb module TDiary module Filter class SpamFilter < Filter def referer_filter( referer ) /sex|adult/ !~ referer end end end end
なお、コメントフィルタと併用する場合は、適当にマージする必要がある。
_ ADSL が繋がらない
ので NTT に電話したら、モデムの電源を入れなおしてくれと言われた。そのとおりにやったら復活したが、今までそんな事したことないのに何でだろう?
_ 今日のアニメ
- きまぐれオレンジロード#46
- スキー場で恭介とまどかの乗ったゴンドラが止まってしまい、中で夜を明かす。