MT4 コメントスパム対策。
今使ってるブログでは、「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日が経過しましたが…。
スパムコメントは皆無ですわ♪
ええ感じじゃ。(笑)
コメント[6]
ごぶさたしてます。
そのスパム対策のため導入してる、うちのso-netの画像認証がいまいちらしくて入れないという苦情がほうぼうから来てます。
そんなわけでいちおうわかりやすいパスにしたので、もしせなっちさん♪も、そのような状況だったのでしたら試してみてください。
ちなみに「eito103」と打ってください。
Posted by のび at 2008年4月29日 03:23 | 返信
§のびさん
こんにちは!
スパムのために、対策を施したり善意のコメントを逃したり
するのは本当にウザいし、対策のその時間を前向きに使いたいですよね。
ヽ(´▽`)/
いろいろ検討してみましたが、どうも人間が手作業でのスパムは
皆無のようですから、今回の対策は効果絶大です。
のびさんのブログにも足跡残せてませんが、密かにROMってますので…。(笑)
また遊びに寄らせて頂きますね。
Posted by せなっち♪ at 2008年5月 1日 12:28 | 返信
テスト送信
Posted by テスト送信 at 2008年8月 6日 18:27 | 返信
§テスト送信さん
こんにちは!
いまだロボットからのスパムコメントは皆無です。
とても効果的な方法だと思いますよ。
完璧です♪
Posted by せなっち♪ at 2008年8月11日 12:54 | 返信
こんにちは、いただいまブログを構築中で、有効なコメントスパム撲滅の方法はないかと検索結果をウロウロしていました。
こちらのブログにたどり着いて、早速参考にさせていただきました。まだまったく誰にも知られていないサイトなので、効果はわかりませんが、それにしても、説明がとにかくわかりやすかったので、感動!
それだけでもお礼をお伝えしたくて。ありがとうございます!
Posted by まりこ at 2008年10月24日 13:08 | 返信
§まりこさん
はじめまして。
お役に立てると良いのですが…。ヾ( 〃∇〃)ツ
きっとコメントスパムを排除することができると思いますよ。
こうしてコメントを残して頂けると更新の活力になります。
こちらこそ、ありがとう御座います。
これに懲りず、また遊びに寄ってくださいね。
Posted by せなっち♪ at 2008年10月24日 18:50 | 返信
コメントする