今使ってるブログでは、「Movable Type 4」のフィルタ機能で、
大半のスパムコメントは表面に現れるコトは無いのですが
時折保留になってたりします。(;^_^A
手で消すのも面倒じゃし、スパムでDBに不要な負荷を掛けるのも
面白くないのでシャットアウトすることに…。
アクセス解析を見てみると、スパムは足跡を残していないので
コメント投稿用のCGIに直接アクセスしている感じですね。
投稿CGIを変名する方法もありますが、イタチごっこのような。(;^_^A
その対策として今回は「MT-Keystrokes」というプラグインを
見つけたので、早速導入してみるコトに♪
なんでも、コメント入力フォームの「投稿」ボタンが実際に押された時だけ
コメントを受け入れるという仕掛けだとか。〇(≧∇≦)〇
これなら別途数桁の暗号を入れさせる必要も無く、操作性も
変わらないので、コメント投稿者にも負担は無いですね♪
§自分用の覚書に導入手順をば。
1.上記サイトからダウンロードしたファイルを解凍して、
テキストエディタ等で、keystrokes.pl を修正します。
修正前
return 1 unless $MT::VERSION =~ m(^3\.);
修正後
return 1 unless $MT::VERSION =~ m(^4\.);
MTのバージョン確認を行っているので、65行目の3のところを4に変える。
2.上書き保存して、keystrokes.plを、pluginsフォルダにアップする。
3.コメント入力フォームの、formタグのすぐ下に<$MTKeystrokes$>を追記。
修正前
<form method="post" action="<$MTCGIPath$><$MTCommentScript$>"
name="comments_form" id="comments-form" onsubmit="if (this.bakecookie.checked) rememberMe(this)">
<fieldset>
<input type="hidden" name="static" value="1" />
修正後
<form method="post" action="<$MTCGIPath$><$MTCommentScript$>"
name="comments_form" id="comments-form" onsubmit="if (this.bakecookie.checked) rememberMe(this)">
<$MTKeystrokes$>
<fieldset>
<input type="hidden" name="static" value="1" />
4.同じくコメント入力フォームのコメント入力エリアのtextareaタグに、
onkeypress="keystrokes(this.form)"を追記。
修正前
<textarea id="comment-text" name="text" tabindex="5" accesskey="t" rows="10" cols="30" onfocus="if (this.value == 'Please comment') this.value = '';" onblur="if (this.value == '') this.value = 'Please comment';"><MTIf name="comment_preview_template"><$MTCommentBody autolink="0" sanitize="0" convert_breaks="0" encode_html="1"$><MTElse>Please comment</MTIf></textarea>
修正後
<textarea id="comment-text" name="text" tabindex="5" accesskey="t" rows="10" cols="30" onkeypress="keystrokes(this.form)" onfocus="if (this.value == 'Please comment') this.value = '';" onblur="if (this.value == '') this.value = 'Please comment';"><MTIf name="comment_preview_template"><$MTCommentBody autolink="0" sanitize="0" convert_breaks="0" encode_html="1"$><MTElse>Please comment</MTIf></textarea>
5.コメント投稿ボタンのinputタグにonclick="keystrokes(this.form)"を追加。
修正前
<input type="submit" tabindex="7" accesskey="s" name="post" id="comment-post" value="投稿" />
修正後
<input type="submit" tabindex="7" accesskey="s" name="post" id="comment-post" value="投稿" onclick="keystrokes(this.form)" />
6.コメント入力フォームを保存し、再構築して動作確認。
このプラグインを導入して、3日が経過しましたが…。
スパムコメントは皆無ですわ♪
ええ感じじゃ。(笑)