福祉支援サービス コミル

コミルは障害をお持ちの方の生活をモノの工夫によって豊かにすることをお手伝いします。

福祉支援サービス コミル

コミルは障害をお持ちの方の生活をモノの工夫によって豊かにすることをお手伝いします。

作成日:2006/10/26
タグ:

コメントスパム対策

(以下は、Hiki-users ML へ投稿した文章の再掲です。)

今月初めから、表サイトのコメント欄に毎週必ず多量のコメントスパムが投じられるようになりました。 しかも、生のHTMLタグ(主にリンクを含むアンカータグ)を数十行放り込むという劣悪なヤツ。ただし、全部英語。

Apache のログを見ると、(たぶん自動で「コメント欄のありそうなページ」を見つけてきては)Formタグが示すCGIにそれっぽいパラメータでPOSTしているだけだったので、「日本語を解してまじめに手入力でコメントを投げかける」人以外を排除することにしました。

で、取った対策は単純です。

コメント欄横のチェックボックスにチェックを入れてからコメントを送信しないと無視する。

というものです。

以下がそのパッチ。hikiを入れたディレクトリ/misc/plugin に cd してから、 patch < '下のパッチファイル' としてください。

--- comment.rb.org	2006-07-03 14:09:09.000000000 +0900
+++ comment.rb	2006-10-12 11:03:54.000000000 +0900
@@ -23,6 +23,8 @@
     #{comment_comment_label}:
     <input type="text" name="msg" size="#{cols}">
     <input type="submit" name="comment" value="#{comment_post_label}">
+    <input type="checkbox" name="notspam" value="on">
+    #{comment_notspam_label}
     <input type="hidden" name="comment_no" value="#{@comment_num}">
     <input type="hidden" name="c" value="plugin">
     <input type="hidden" name="p" value="#{@page.escapeHTML}">
@@ -39,8 +41,9 @@
   name       = params['name'][0].size == 0 ? comment_anonymous_label :
params['name'][0]
   msg        = params['msg'][0]
   style      = params['style'][0].to_i
+  notspam    = params['notspam'][0]

-  return '' if msg.strip.size == 0
+  return '' if msg.strip.size == 0 || notspam != 'on'

   lines = @db.load( @page )
   md5hex = @db.md5hex( @page )
--- ja/comment.rb.org	2006-07-03 14:09:09.000000000 +0900
+++ ja/comment.rb	2006-10-12 11:05:22.000000000 +0900
@@ -16,3 +16,7 @@
 def comment_anonymous_label
   '名無しさん'
 end
+
+def comment_notspam_label
+  'チェックを入れてください'
+end
--- en/comment.rb.org	2006-10-12 11:27:15.000000000 +0900
+++ en/comment.rb	2006-10-12 11:26:42.000000000 +0900
@@ -16,3 +16,7 @@
 def comment_anonymous_label
   'Anonymous'
 end
+
+def comment_notspam_label
+  'Check it'
+end

(本当はHiki本体にパッチを当てるのではなく、外部プラグインにしてコメント定義を上書き定義するべきだったかもしれない・・・。)

なお、Hikiの最新開発版は相手のIPアドレスがブラックリストに載っていたらすべてのPOSTが出来ないというスパム対策を既に組み込んでいるとのことです。

今のところはたったこれだけでコメントスパムは止まりました。(というか、送られているけどその場で捨て去られています。)

表サイトでコメントを付けていただく方は、チェックボックスへのチェックを忘れないようにお願いします。

また、こちらの「うら」サイトでも今後同様の対策を取るかもしれません。

blog comments powered by Disqus