top

コメントスパム対策プラグイン

ダイナミック・パブリッシングに対応したコメントスパム用のプラグインを見つけたので試してみました。実は見つけたのは少し前だったのですが、他のことに時間をさいていたので、エントリーが遅れました。

MT-Keystrokes

これはjavascriptを使ってブラウザから投稿ボタンを経由しないとコメントが出来ないようにするものらしいです。確かにサーバーのエラーログなどを見ているとスパマーは直接コメント.cgiにポストを試みるような動きをしているので、かなりの効果が期待できるのではと思います。

情報元は下記のサイト様から。ありがとうございました。
WEBデザインBLOG  MT-Keystrokesプラグイン Movable Typeコメントスパム対策

以下、導入のための覚え書きです。

1.プラグインのセット
上記のサイトから「keystrokes-0.1.5.tar.gz」「keystrokes-0.1.5.zip」どちらかをダウンロードして解凍。
keystrokes.pl を「plugins」ディレクトリにアップします。
function.MTKeystrokes.php を「php/plugins/」にアップします。

*keystrokes.plは静的生成用のものですが、ダイナミックを使用している際にもこれも忘れずに「plugins」ディレクトリにアップしておきます。プレビュー画面で必要になりますので。

2.エントリーアーカイブのテンプレートに専用タグを追加

■form開始部分
赤字のタグを以下の部分に追加します。

<MTEntryIfCommentsOpen>
<form method="post" action="<$MTCGIPath$><$MTCommentScript$>" name="comments_form" onsubmit="if (this.bakecookie.checked) rememberMe(this)">
<$MTKeystrokes$>
<input type="hidden" name="static" value="1" />
<input type="hidden" name="entry_id" value="<$MTEntryID$>" />

■コメント入力部分
<textarea>タグ内に以下の赤字の記述を追加

<textarea id="comment-text" name="text" rows="15" cols="50" onkeypress="keystrokes(this.form)"></textarea>

■投稿ボタン
投稿ボタンの<input>内に以下の赤字の記述を追加

<input type="submit" accesskey="s" name="post" id="comment-post" value="投稿" onclick="keystrokes(this.form)" />

3.コメントプレビューテンプレートにも同様に追加
コメントプレビューを使う場合はプレビューテンプレにも2と同じ内容を追加しておきます。でないとプレビュー画面からの投稿ができなくなりますので(keystrokes.plはここで必要になります)。

テストブログ(3.34ダイナミック環境)で動作確認してみましたが問題なく投稿できました。画像認証のような手間をとらせないので、かなりおすすめなのではないでしょうか。


☆ちょっと余談☆
ここのブログでは上で紹介しているプラグインとはちょっと違った方法でコメントスパム対策をしていますが、やはりjavascriptを使っているので、結果としては似たようなことをしていたのかなと思いました。
私がやっていることはリネーム後のcgi名をスパマーに知らせないために「javascriptでコメントcgiをソースから完璧に消去する」ことなのですが、それが結果として「ブラウザを経由しないと投稿ができない」という状況を生み出していたので、対策以後スパムが来なくなったのはその効果もあったのかなと思いました。
私が自己流でやっていることよりはプラグインを使ったこの方法のほうがずっとスマートだと思いますので、スパムに困っている人は試してみられるといいと思います。

 

トラックバックの一覧

トラックバック 多すぎるコメントSPAMへの対策  »» 2007年7月24日 12:48
二週間ほど前からブラックリストを掻い潜りつつ物凄い勢いでコメントSPAMが投稿され、そのたびに投稿を知らせるメールの着信でバイブレーションしまくっています...
トラックバック ゴミコメント対策  »» 2007年11月15日 14:30
先般のゴミTB対策、今度は見事に当たって現在まで皆無でございます。素晴らしいねぇ...
トラックバック MovableType コメントのスパム対策  »» 2008年7月13日 02:37
引っ越した都合でブログの管理を全く行えていませんでした。 やっとWebに繋がるよ...
トラックバック MT-Keystrokesを使ったスパムコメント対策、実践編!!  »» 2008年7月13日 02:46
さて、以前のエントリーでもあげましたが、MovableTypeにおける...
トラックバック ブログ(MovableType4)のコメントスパム対策  »» 2008年8月 4日 22:36
山とは全然関係ないんだけど、ブログ(MovableType)のコメント機能の受付...
トラックバック コメントスパム対策  »» 2011年10月15日 17:59
んまぁ、こんなサイトではありますが、一応スパム対策をして おきました。 【M...

コメント

こんにちは、TAEKOさん。
確かこちらではテキストエリアのonkeypressに、コメントプレビューのスクリプト割付いてたと思うんですが、そこら辺ってどうしました?

>oscarさん
あ~そういえばコメントのテキストエリアにonkeyupでプレビュースクリプト使ってましたね。動作確認したブログではこのカスタマイズをしていなかったので気が付きませんでした。するとプレビュースクリプトとの併用は難しいのかな? 普通にMT標準のプレビュー機能を使っている人向けのプラグインということで(^^;。

*このブログで使っているコメントスパム対策ならプレビュースクリプトと併用できているので、ちょっと追記しておいた方がいいかもですね。考えてみます。

TAEKOさんこんにちは。
 度々お世話になっています。今回の対策を試させて頂きました。ただ、コメントプレビューテンプレートにも同様に追加となっておりますが、ぼくの場合、コメントプレビューテンプレートに textarea タグ、input タグともに見当たらなかったのでコメントプレビューテンプレートは無視してやってみました。
 一応コメントを上げることはプレヴュー画面を通してもできるようです。結果オーライなんでしょうかね?それとも機能していないのか?しばらく様子を見てみます。

>keizoさん
こんにちは。
プレビューテンプレートにtextareaのないバージョンもありましたから、バージョンアップを繰り返して使われている場合は以前のものが残っている可能性はありますね。
どちらにしろ、keystrokes.plをアップした状態で投稿できるのなら問題ないと思います。まだアップしてないなら一度アップして試してみて下さい。それで投稿できなくなるようなら、プレビューテンプレートを最新のものにされるといいと思います。

>TAEKOさん
コメントバックありがとうございます。keystrokes.pl はどうやら完璧に機能しているようです。嘘のようにコメントスパムが無くなりました。ありがとうございます。

ただプレヴューテンプレートに関してはぼくの理解不足があったようです。テンプレート/システムのコメント・プレヴューテンプレートを初期化したらご指摘のテンプレートに変わりました。ありがとうございました。

>keizoさん
あ、やっぱりプレビューテンプレートは以前のバージョンのが残っていたみたいですね。
keystrokes.pl、効いているようでよかったです。
やっぱりスパムはブラウザを経由しないで直接投稿しているのがほとんどなのでしょうね。

いきなりお邪魔の50歳を過ぎたMT初心者です。こちらの「サムネイル・・・」を使わせて頂いてからよく拝見しています。

更に真似っこしてロリポからXreaに移りました。

今度はスパム対策です。
まっさらからMT4.1を使っています。
PLファイルのアップロード場所が違うような気がします。
「テンプレートの変更を保存しました。 テンプレートでエラーが見つかりました。
は存在しません(35行目)。」
というエラーが出ています。

(あまりばかばかしい質問だと思ったら放置するとか削除して下さい。)

「テンプレートの変更を保存しました。 テンプレートでエラーが見つかりました。$MTKEYSTROKES$
は存在しません(35行目)。」
です。すいません。(これで表示されるかな?)

>チェンバロさん
初めまして。^^
見て下さっているとのこと、ありがとうございます。XREA、いいですよねー。

MT-Keystrokesですが、残念ながらMT4では動かないようです。
ただ、検索したところ、以下のサイト様でバージョン確認の箇所を修正したらMT4系でも動いたという報告があるようです。
http://drk-web.jp/mayu/2008/02/02/3340/
私はまだ試してないのですが、これで上手くいくようでしたら試してみて下さい。
その際ダイナミック用のfunction.MTKeystrokes.phpも小文字修正されておくとダイナミックでも使えるのでいいと思います。

それでも動かないようでしたら、以下の5項のmt-comments.cgiリネーム法を行うといいかもしれません。
http://wing.w-museum.com/200710141428.html
よろしくです。

あ、ありがとうございます。
まだよくわかっていませんがダメ元でトライしてみます!

ありがとうございました!

>チェンバロさん
上手くいくといいですね!
私も時間が出来たら試してみようと思います。