Kouhei Sutou
kou****@cozmi*****
2010年 5月 16日 (日) 09:32:59 JST
須藤です。 tDiaryのように「メールアドレス欄に何か入力されていたらスパム と判断する」フィルターを作りました。 http://www.cozmixng.org/repos/ruby/hiki-ext/ hiki/filter/trap_filter.rbをHiki本体のhiki/filter/に入れて、 hiki/plugin/trap_filter.rbをhiki/plugin/に入れると動くと思い ます。 (ほんとは、pluginはhiki/plugin/に直接入れるよりも @options['sp.path']を設定した方がよいと思います。) インストールすると、編集フォームにdisplay: noneなフィールド を追加して、そこにダミーの値が設定されます。「保存」するとき にその値が消されていないとスパムと判断します。通常は JavaScriptで自動的にダミーの値が消されるので、インストールし ても操作は変わりません。 tDiaryの場合は「botが明示的になにか入力してしまう」ことをス パム判断の手がかりとしていますが、trap_filterは「botが明示的 に消さない」ことをスパム判断の手がかりとしています。最初は tDiaryと同じ方法にしたのですが、効果がなかったのでこうしまし た。 あ、あと、ついでに、スパム判定された投稿は自動的にベイズフィ ルターに学習させるようにしています。