コメントスパム根絶?

ある対策をしてからコメントスパムがまったく来なくなりました。というかはじき返しているみたいです。

その対策とは単純でHTMLタグをコメントとして認めない、ただそれだけです。ただしやるからには方法は徹底しました。Movable Typeに標準で備わっているHTML投稿禁止機能を用いるのではなく(これは投稿されたコメントからHTMLのタグを排除したものが投稿されてしまいます)、コードをハックしてHTMLタグが使われた場合は投稿を許さずに修正を要求する、というように改造しました。

スパマーとしては<a href="">のリンクをつけられないとコメントスパムする意味がないといことなのでしょうか?

方法は続きをどうぞ。

/path/to/mt/lib/MT/App/Comment.pmを修正します。

    $comment->text($q->param('text'));
となっている部分(MT2.661だと189行目付近)を
    my $comment_text = $q->param('text');
    my $sanitized = remove_html($q->param('text'));
    if($comment_text ne $sanitized){
        return $app->handle_error($app->translate('HTML tag not allowed.'));
    }
    $comment->text($comment_text);
と修正します。これによってHTMLタグ付きのコメントはすべてエラーとなります。

親切のためにテンプレートも修正しておくとよいと思います。
Comment Preview TemplateやCommment Error Templateの中に<$MTCommentPreviewBody$>というのがあると思いますが、それに対して属性remove_html="1"を指定しておきます。するとHTMLタグがついたコメントはタグが排除された状態でユーザに返され再度投稿を促すようになります。

ちなみにURLを自動的にリンクする機能をONにしている場合でも、URLは自動的にリンクになるので心配ないです。

January 04, 2005 10:35 fenrir が投稿 : 固定リンク | | このエントリーを含むはてなブックマーク

コメント

コメントありがとうございます。
試してみます。
今後ともよろしくお願いいたします。

Posted by: ゴン : January 27, 2005 10:44 PM

コメントする