Hikiへのspam書き込みを防止するQuick Hack

こんにちは。那由多屋の加藤です。

那由多屋のWikiサイトであるなゆラボへのspam書き込みを防止するため、HikiをQuick Hackしましたので、メモ代わりに公開します。

以前はIPアドレスベースで書き込み制限をしていたのですが、botnet相手では功を奏さず、spamが大量に書き込まれていました。

そこで思い切って「ASCIIのみで構成されるコメントはすべてspam」として、書き込みを制限することにしました。

というわけで、bbsプラグインとcommentプラグインをQuick Hack。

--- misc/plugin/bbs.rb
+++ misc/plugin/bbs.rb
@@ -42,6 +42,11 @@
   msg        = params['msg'][0]

   return '' if msg.strip.size == 0
+
+  require 'nkf'
+  text = name + subject + msg
+  return '' if NKF.nkf("-E -s", text) == text

   lines = @db.load( @page )
   md5hex = @db.md5hex( @page )
--- misc/plugin/comment.rb
+++ misc/plugin/comment.rb
@@ -45,6 +45,11 @@
   style      = params['style'][0].to_i

   return '' if msg.strip.size == 0
+
+  require 'nkf'
+  text = name + msg
+  return '' if NKF.nkf("-E -s", text) == text

   lines = @db.load( @page )
   md5hex = @db.md5hex( @page )

上記は、EUC-JPで運用しているHiki用のコードです。EUC-JP以外を使っている場合は、NKFのオプションを適宜変更してください。

なお、ページを丸々書き換えてしまうタイプのspamは、今後もIPアドレスによる制限とページの凍結でしばらく戦います。