「Xserver」で「Chaptcha」導入メモ コメントスパム対策
Xserverを使用していますが、MTのコメントスパムに
悩まされせっかくいただいたコメントが埋もれてしまって
いました。
そこで、「Captcha Plugin - Ogawa::Memoranda」の導入を考えたのですが、
Perlモジュールの 「Authen::Captcha」 がXserverでは
入っていません・・・。
Xserverに追加願いを出しましたが、考慮の余地なく
却下!
ということであきらめていたのですが、どうにも我慢できなくなり
なんとかしようと探し回ったら方法を発見しました。
・・・ということで無理矢理導入した導入メモです。
コメント欄を見ていただければ分かりますが、簡単なコードを表示し、コメント時にそのコードを入力してもらうものです。これで、spambotによるコメントを排除できると期待しています。 実践!戦略的IT経営: コメントスパム対策
さて、最大の課題はPerlモジュール Authen::Captcha を動かすことだと思います。 ロリポでは導入されてないのです。リクエストが多ければ入れるという話はあるようですが。
ロリポップでCaptcha plugin導入 (nni's blog)
(2007.05.02 ロリポでは、「Authen::Captcha」が追加されました。)
下記では、
ロリポップでCaptcha plugin導入 (nni's blog)の記事を引用しながら補足メモを入れています。
●Joshua I. Miller / Authen-Captcha - search.cpan.org
から、 Authen-Captcha-1.023をダウンロード。
●解凍して、MTを入れているディレクトリの「extlib/Authen」にアップロード
●「wwwtest.cgi」を書き換えてテスト
#!/usr/bin/perl
use strict;
use CGI qw(:standard);
use lib '/home/設置したディレクトリ/mt/extlib';
use Authen::Captcha;
my $output_dir = "/home/どこかにディレクトリを作成/captcha";
my $www_output_dir = "/captcha";
my $db_dir = "/home/どこかにディレクトリを作成/captchadb";
「wwwtest.cgi」「captcha」「captchadb」とも「755」で、
動きました。
http://「wwwtest.cgiを設置したディレクトリ」/wwwtest.cgi
にブラウザからアクセスしてテスト。
キャプチャが無事表示されればOK。
●Captcha Plugin - Ogawa::Memorandaをダウンロード
●「captcha_js.cgi」に追記
#!/usr/bin/perl
#
# $Id: captcha_js.cgi 264 2006-10-07 16:23:10Z ogawa $
#
use lib '/home/設置したディレクトリ/mt/extlib';
use Authen::Captcha;
use File::Spec;
use File::Basename;
use CGI;
●パーミッション
cgi、plの拡張子ファイルを755でいけました。
●プラグインを有効にする
設定で Enable Captcha にチェックがついているか確認します。 (最初はついてるのかな? 私はがちゃがちゃやってたのでついてませんでした)
これ結構大切です。
私もついていませんでした。
MTの管理画面から該当ブログの
サイドメニュー-設定-プラグインタブ
「Enable Captcha:」のチェックを入れましょう。
●確認
一応稼動確認として、cgiに直アクセスしてみてエラーにならないか確認します。 http://www.nnistar.com/cgi/mt/plugins/captcha/captcha_js.cgi IEだと「ファイルのダウンロード」になると思います。 中身は document.writeln とかが並んでいます。
●テンプレート設定
<script type="text/javascript" src="<$MTCaptchaJsURL$>"></script>
この一行を足すわけですが、私もなぜか表示されなかったので
print $q->header('text/javascript'); # print "if (!commenter_name) {\n"; print "\tdocument.writeln('$_');\n" foreach split(/\r?\n/, $tmpl); # print "}\n";
にしてみたら無事動きました!!
補足&指摘お待ちしております。
2007年06月24日