[ トップページ ]
Web とインターネット:Movable Type, Web とインターネット:私の Web サイト

keystrokes.pl による Movable Type 5.04 のコメント・スパム対策

Movable Type 5.04 による新規サイトの構築」 という項目に書いたように,あたらしいブログをたちあげるのに MT5 をつかったが,そこで課題になったことのひとつはコメント・スパムを防止することだ. いろいろな方法があるが,これまでつかってきた keystrokes.pl というプログラムをつかうのが,投稿者の負担もすくなくて,よい. そこで,すこしばかりハックして,それがつかえるようにした.

Captcha という方法もあるが,これは投稿者に負担をかけるのでやめたい. Movable Type 3 をつかっているこのサイトでは keystrokes.pl というプラグインをつかってきたが,これは強力だ. これを今度もつかいたいが,そのままでは MT5 ではつかえないらしい. Web を検索してみると,いろいろと情報が錯綜している. しかし,やっと静的なブログ記事でつかえる,ただしい方法がわかった.

MT3 における keystrokes.pl (keystrokes-0.1.5.tar.gz または keystrokes-0.1.5.zip) というプログラムのつかいかたに関しては,Movabletype 3.3 コメントスパム対策 というページにくわしく記述されている. (英語の説明は MT-Keystrokes というページにあり,プログラムへのリンクもここにあるが,そのリンクはふるい.) 基本的にはこれにしたがえばよいが,MT5 のばあいにはもうひとつ,つぎの修正が必要である.

return 1 unless $MT::VERSION =~ m(^3\.);

この "3" を version 5 のときには "5",version 4 のときには "4" にする必要がある (「MT5.1の再構築 早し!!」 に書いてあるとおり).

[2011-3-26 追記]vvv
もうひとつ,おとしなあがあった. 上記の修正だけでは,サインインしていないひとがコメントを投稿したとき 「保留しました」 といわれるが,実はエラーのため投降した内容がうしなわれてしまうというバグがあった (サインインしていれば投稿することができるので,これまで気がつかなかった). これをなおすには,「Hitorigoto? - コメントスパム対策 完結編・・か?」 などにあるように keystrokes.pl のつぎの行をコメントアウトする必要がある.

$eh->error("keystroke id: " . $obj->blog_id);

^^^

以下,Movabletype 3.3 コメントスパム対策 にある情報もかんたんにまとめておく. 必要な変更はつぎの 3 つである (いずれもパスは MT5 がインストールされたディレクトリからの相対パス).

  • keystrokes.pl のコピー:
    plugins というディレクトリに,上記のパッチをあてた keystrokes.pl をいれる.
  • コメントのテンプレートかきかえ:
    コメントのテンプレート (MT5 では通常,管理画面のメニューで デザイン > テンプレート > テンプレートモジュール > コメント という順序で選択できる) を 3 箇所かきかえる. かきかえかたについては後述する.
  • コメントプレビューのテンプレートかきかえ:
    コメントプレビューのテンプレート (MT5 では通常,管理画面のメニューで デザイン > テンプレート > システムテンプレート > コメントプレビュー という順序で選択できる) を,コメントと同様に 3 箇所かきかえる.

コメントとコメントプレビューにおいて,かきかえるのはつぎの 3 箇所である.

  • form タグの直後に <$MTKeystrokes$> というタグを追記 (1 行挿入) する.
    <form method="post" action="<$mt:CGIPath$><$mt:CommentScript$>" name="comments_form" id="comments-form" onsubmit="return mtCommentOnSubmit(this)">
    <$MTKeystrokes$>
    ...
  • textarea タグに属性をひとつ追加する.
    <textarea id="comment-text" name="text" rows="5" cols="50" onkeypress="keystrokes(this.form)" onfocus="mtCommentFormOnFocus()">
  • 投稿ボタンをあらわす input タグに属性をひとつ追加する.
    <input type="submit" accesskey="s" name="post" id="comment-submit" onclick="keystrokes(this.form)" value="投稿" />
キーワード:

トラックバック

このエントリーのトラックバックURL:
http://www.kanadas.com/mt/mt-tb.cgi/4898

この一覧は次のエントリーを参照しています: keystrokes.pl による Movable Type 5.04 のコメント・スパム対策:

» ServersMan@VPSでMovableTypeを動かす その3 送信元 テスト。
ソフトウェア的なチューニングを施す一方、 SPAM投稿が無茶苦茶で、アクセス過多によりサーバー死亡。 ということがあったので、SPAMを弾きます。... [詳しくはこちら]

» スパムコメント対策 MT-Keystrokes Plugin 送信元 Movable Type 技術情報
スパムコメントは誰でもが Movable Type を使っていると悩まされます。ボット投稿されるので手動で削除していては追いつかず益々増加する一方である。... [詳しくはこちら]

» スパムコメント対策 MT-Keystrokes Plugin 送信元 写風 Weblog (Movable Type 技術情報)
スパムコメントは誰でもが Movable Type を使っていると悩まされます。ボット投稿されるので手動で削除していては追いつかず益々増加する一方である。... [詳しくはこちら]

コメントを投稿

Google でブログを検索:

メインページアーカイブページも見てください.
Creative Commons License
このブログはつぎのライセンスで保護されています. クリエイティブ・コモンズ・ライセンス.
Powered by
Movable Type