Home > 日記 > このサイトについて > MovableType > MT3.xx-ja > Captchaプラグイン導入
« 続:コメントスパム対策(Captchaプラグイン) | Main | さくら満開 »
Captchaプラグイン導入
2007年4月 2日
昨日のお知らせの通り、スパム対策としてCaptchaプラグイン(Ogawa::Memorandaさん公開)を使うことにしました。
コメントをくださる方に手間をかけさせてしまうので、この手の対策はできれば避けたかったのですが・・。
さていくつか気をつける点があったので、以下適用手順の覚書です。
◆前準備その1
Authen::CaptchaというPerlモジュールが必要です。
ところがロリポップのサーバーには入っていません(他のレンタルサーバーも入っていないことが多いらしいです。)。
そんな訳で以下の作業が必要。
①Authen::Captchaをダウンロードし解凍。
②(mt home)/extlibにAuthenフォルダを作成。
③②で作成したAuthenフォルダに、解凍したファイル(の一部)をアップロード。
* (mt home)/extlib/Authen/Captcha.pm
* (mt home)/extlib/Authen/Captcha/images(フォルダ以下全部)
◆前準備その1の動作テスト
Authen::Captchaの動作テストをしたい場合はCaptcha/examplesフォルダ以下も必要です。
動作テストについては「ロリポップでCaptcha plugin導入」を参照してください。
◆前準備その2
Authen::Captchaにパッチを当てる。
Captcha Plugin 0.10以降では、brute force attackへの対策としてsecret keyによる簡易な認証機能をサポートしています。この機能を使うためには、下記のパッチをAuthen::Captchaに適用する必要があります。FreeBSDなどのportsではこのパッチは適用済みになっています。
とあるので当てました。というかこれを当てないと、Captchaを使用しないブログのコメントフォーム(うちのサイトだとmailフォームですが)がエラーになってしまったのです。原因違ってたまたま直ったのかもしれませんが。
私は手で直しました。Captcha.pmをテキストファイルで開きます。
#7664: improve Authen::Captcha securityの更新履歴の部分を見てください。
- my $md5 = md5_hex($code);
+ my $md5 = md5_hex($code . $self->secret);
というように「+」や「-」があるので「+」の場合はCaptcha.pmに追加。「-」の場合はコメント(文頭に#をつける)してください。
場所はわかりづらいですが、前後と同じ文を探してください。
◆本体をインストール
Captchaプラグインのインストール方法にあるとおりなのですが一部注意。
①Captcha.zipをダウンロードして解凍。
②「前準備その1」をやった場合はcaptcha.pl、captcha_js.cgi、captcha_js.fcgiに以下の修正が必要です。
use lib '../../extlib';←追加
use Authen::Captcha;
③解凍したcaptchaフォルダごと以下の場所へ保存する。
* (mt home)/plugins/captcha(フォルダ以下全部)
④パーミッション(属性)を変更。
* (mt home)/plugins/captcha/captcha_js.cgi ... CGIスクリプトとして実行可能にする(例755か705)
* (mt home)/plugins/captcha/data ... CGIスクリプトから書き込み可能にする(例707)
* (mt home)/plugins/captcha/images ... CGIスクリプトから書き込み可能にする(例707)
⑤確認
プラグインにCaptchが表示されていれば無事インストール終了
◆使い方
これもCaptchaプラグインの使い方にあるとおり。
コメントフォームのあるすべてのテンプレートに以下を追加し、再構築。
追加場所は必ずコメント用のform要素の内部に記述すること。
わかりにくかったら「投稿」ボタンの前とかにすればいいかと思います。
<script type="text/javascript" src="<$MTCaptchaJsURL$>"></script>
コメント時「確認」ボタンのある方は、確認用テンプレートにも上記を追加しないと確認後に投稿できません。
確認用テンプレートはデフォルトだと環境設定→テンプレート→システム→コメント・プレビュー。
◆注意
各ブログ→設定→プラグイン→Captchの設定を表示
・Enable CaptchaにCaptchを使用するブログのみチェックをつける必要があります。
・Captcha Templateで見た目を修正可能。
Captchが表示されない時、「captcha_js.cgi」の条件を削除(#の部分)
print $q->header('text/javascript');
# print "if (!commenter_name) {\n";
print "\tdocument.writeln('$_');\n" foreach split(/\r?\n/, $tmpl);
# print "}\n";
多分HTMLが間違ってるんだろうけどね~。私のもmailフォームで試した時と確認用は上記を行わないと表示されませんでした。
◆画像変更
背景画像変更したんだけど、ダウンロード元がわからなくなってしまった(爆)
でも本当はもうちょっと見やすいのに変更したい。背景も字も崩し具合も。
プラグイン元
Ogawa::Memoranda>Captcha Plugin公開
Ogawa::Memoranda>Captcha Plugin 0.11a公開
Ogawa::Memoranda>Captchaプラグイン
参考
hide-k.net#blog>Cpatcha Pluginをレンタルサーバーで使ってみる
nni's blog>ロリポップでCaptcha plugin導入
以上です。
エントリー
トラックバックURL
よろしければコメントください。