2005-06-18 (Sat) コメントスパムがやってきた! [長年日記]
■ コメントスパム来襲
最近この日記の更新頻度が高い(左側メニューバーのfeed meterが振り切れている)ように見えているので、この日記をご覧の皆様におかれましては「とよとめは会社を休んでヒマしているぞ!」と思われているかもしれません。しかし実際のところそうではなく(ヒマかもしれませんが更新はそこまでしていません…)、どうやらコメントスパムがやってきて更新頻度があがっているようなのでした。
異変に気がついたのはPCのメール取り込みに時間がかかるようになったことでした。そんなに新着メールが来ているわけでもないのにおかしいなあ、と思って何の気なしに鶴亀メールのゴミ箱を見てみると原因がわかりました。
日記にコメントがあるとどの日にツッコミがあったかをメールで通知するようにしているのですがコメントスパムと思しきメールが山のように来ていました。その数1003通。さすがにこれを放置するわけにはいかないので対策を考えることになりました。
行った作業としては以下のとおりです。
- ツッコミのIPアドレスをメールで知りたい(ふぇみにん日記より)
- コメント SPAM 避けチェックボックスパッチ(青木日記/Tより)
- tDiaryのフィルタ機能(ただの日記より)
- tdiaryへのコメントspam一括削除(いやな日記より)
以下にその時にやったことを覚え書で残しておきます。
■ ツッコミのIPアドレスをメールで知りたい時の設定
ツッコミのIPアドレスをメールで知りたい(ふぇみにん日記より)を参考にしてskel/mail.{rtxt,rtxt.en}の最後の行に以下の行を書いてあげます。
IP: <%=ENV['REMOTE_ADDR']%>
ただ、ここのレンタルサーバーがApacheのアクセスログをリアルタイムに取得できない(毎晩3時にバッチで更新される)ので.htaccessなどでHTTP的に蹴ることができないので他の方法も併用することにします。
■ コメントスパム避けチェックボックスパッチの適用
コメント SPAM 避けチェックボックスパッチ(青木日記/Tより)を参考にしてパッチを取得して適用します。
% cd tDiaryのディレクトリ % patch < tdiary-rejectSPAM-patch.txt Hmm... Looks like a unified diff to me... The text leading up to this was: -------------------------- |--- skel/diary.rhtml 2 Aug 2004 13:34:39 -0000 1.3 |+++ skel/diary.rhtml 18 Sep 2004 02:35:42 -0000 1.4 -------------------------- Patching file skel/diary.rhtml using Plan A... Hunk #1 succeeded at 69. Hmm... The next patch looks like a unified diff to me... The text leading up to this was: -------------------------- |--- index.rb 2 Aug 2004 14:06:33 -0000 1.2 |+++ index.rb 18 Sep 2004 02:35:42 -0000 1.3 -------------------------- Patching file index.cgi using Plan A... Hunk #1 succeeded at 28. Hmm... The next patch looks like a unified diff to me... The text leading up to this was: -------------------------- |--- plugin/ja/00default.rb 2 Aug 2004 12:33:15 -0000 1.1 |+++ plugin/ja/00default.rb 18 Sep 2004 02:35:42 -0000 1.2 -------------------------- Patching file plugin/ja/00default.rb using Plan A... Hunk #1 succeeded at 88. done
index.rb,skel/diary.rhtml,plugin/ja/00default.rbがあるディレクトリにそれぞれ.origのファイルができていればパッチの適用は成功しています。.rejectみたいなのが出来ている時は適用に失敗していますのでディレクトリのパスや適用するファイルを修正していないかを調べます。この方法はオリジナルにパッチを適用するためバージョンアップする時に適用するのを忘れてしまいそうです。適用後、ツッコミのフォームは以下のようになります。
チェックボックスにチェックを入れないと以下のようなエラー画面になります。
というわけでツッコミを入れていただける方々はお手数ですがチェックボックスへチェックを入れてボタンを押してくださいますようよろしくお願いします。
■ tDiaryのフィルタ機能を使用する設定
tDiaryのフィルタ機能(ただの日記より)を参考にしてtDiaryにあるフィルタ機能を使ってキーワードでコメントスパムを弾きます。フィルタ機能はtDiaryのディレクトリのtdiary/filter以下にspam.rbの名前で作成してあげます。
% cd tdiary/filter/
% cat spam.rb
module TDiary
module Filter
class SpamFilter < Filter
def comment_filter( diary, comment )
return false if /adult/i =~ comment.body
return false if /hardcore/i =~ comment.body
return false if /fuck/i =~ comment.body
return false if /sex/i =~ comment.body
return false if /erotic/i =~ comment.body
return false if /\bhref\b/i =~ comment.body
return false if /\r/ =~ comment.name
return false if /anonimous/i =~ comment.name
return false if /mu@alloha.info/ =~ comment.mail
true
end
end
end
end
■ コメントスパムへの一括削除
tdiaryへのコメントspam一括削除(いやな日記より)を参考にしてすでに書き込まれた不要なコメントスパムを削除します。tdiary-comment-cleanを取得してしかるべきディレクトリに移動して不要なパターンを指定して実行します。
% cd ~/tdiary % tdiary-comment-clean 'hentai' */*.tdc % rm cache/*.parser* % rm cache/recent_comments
本当ならばRSSを生成するところにもコメントスパムが入ってきてしまっていますが今回は疲れたのでそのままにします。というわけで何か不具合などありましたらお知らせください。






Hello! Good Site! Thanks you! sgqapahauzdpk