秋ぐらいになってからコメントspamが尋常じゃないぐらいきてるので、スパム判断の閾値を厳しめに設定したのだが、siのコメントとかもスパム扱いしてることにこの間気づいた。
コメントしてもすぐに表示されなかった方、申し訳ない...。
そんなわけで閾値を元に戻してspamだけを弾くようにCAPTCHAを導入することにした。(そもそもCAPTCHAって何って方はこちら)
以下はそのときのメモ。
http://code.as-is.net/wiki/Captcha_Plugin.ja_JPからCAPTCHAプラグインをDL。
解答してpluginフォルダにぶち込み。cgiのみパーミッションを755に変更。
で、問題のサーバの環境だが、レンタルしてるロリポップはサーバ側をゴリゴリいじれるようなところではないのでモジュールの類は自分で用意する。以前、MTBlogTimesを入れたときにGDはもう用意したのであとはAuthen::Captcha。
メンテナンスがとまったのか、cpanにあるモジュールにpatchを当ててあげないとだめらしい。
幸い、研究室のサーバというものがあるので、そっちにつないでportでインストール。
その後、patchがあたった状態のモジュールをサーバからDL。その後lolipopサーバに移動してextlibディレクトリ内にAuthenディレクトリを作って、CaptchaディレクトリとCaptcha.pmを中にぶち込む。
モジュールの用意はこれでok。
再びplugin側のcgiを調整する。
紆余曲折の結果、変更すべき箇所は...
最初のuse文の前にuse lib '../../extlib';追加。(MTから独立してるCGIなので教えてあげないとだめ。)
あと、generate_code関数の最後らへんにあるprint関数が集まってるとこ
print "\tdocument.writeln('$_');\n" foreach split(/\r?\n/, $tmpl);以外をコメントアウト。(if (!commenter_name)といった具合にcommenter_nameという変数を参照してるらしいが、調べてみたら3.2にはそんな変数はなかったので消した。)以上の2点でok。
とりあえず、これでなんとか動くようにはなった。画像認識できるようなbotちゃんはまだ居ないだろう。たぶんスパムもかなり減ってくれるはずだ。確認時にまた、Captchaを入力しなきゃいけないというのを直したいところではあるが...まぁ今回はこのぐらいでいいや。表示とかの微調整も今度に回しておこう。
コメントする方は若干めんどくさくなってしまいましたが、ご了承くださいorz