Noël Café : Blog

Noëlの公開備忘録とひとりごと。コメント・トラックバックご自由に

コメントスパム対策

再度。って感じなのですが。
まずは、テストです。
MTHashを使います。
Forcing Comment Previews at Musings


Reference :


MT 3.11-ja用。覚え書き。
your-mt-folder/lib/MT/Template/Context.pm
1200行目過ぎくらい。

    if ($cookies && $cookies->{commenter_name} && $cookies->{commenter_name}->value()) {
        $commenter_name = MT::I18N::encode_text($cookies->{commenter_name}->value(),’utf-8′,undef);
    }

    if ($registration_allowed || $unregistered_allowed) {
        $javascript = <<JAVASCRIPT;

の間。

    require Digest::SHA1;
    my $sha1 = Digest::SHA1->new;
    $sha1->add( $entry_id . $ENV{'REMOTE_ADDR'} );
    my $salt_file = MT::ConfigMgr->instance->PluginPath .'/salt.txt';
    my $FH;
    open($FH, $salt_file) or die "cannot open file <$salt_file> ($!)";
    $sha1->addfile($FH);
    close $FH;
    my $comment_validated = $sha1->b64digest . "=";

1300行目過ぎくらい。

<p><label for="text"><MT_TRANS phrase="Comments:"></label> $allow_comment_html_note<br />
<textarea tabindex="4" name="text" rows="10" cols="50" id="text">$comment_text</textarea></p>

<div align="center">
<input type="submit" name="preview" value="&nbsp;<MT_TRANS phrase="Preview">&nbsp;" />
<input style="font-weight: bold;" type="submit" name="post" value="&nbsp;<MT_TRANS phrase="Post">&nbsp;" />
</div>

の間に

<input type="hidden" name="validated" value="$comment_validated" />

your-mt-folder/lib/MT/App/Comment.pm
250行目付近。

    if (!$q->param(‘text’)) {
       return $app->handle_error($app->translate("Comment text is required."));
    }

    my ($comment, $commenter) = _make_comment($app, $entry);

の間に

    require Digest::SHA1;
    my $sha1 = Digest::SHA1->new;
    $sha1->add( $entry_id . $ENV{'REMOTE_ADDR'} );
    my $salt_file = MT::ConfigMgr->instance->PluginPath .'/salt.txt';
    my $FH;
    open($FH, $salt_file) or die "cannot open file <$salt_file> ($!)";
    $sha1->addfile($FH);
    close $FH;
               
    my $digest = $sha1->b64digest . "=";
    if ($q->param('validated') ne $digest) {
    return $app->handle_error($app->translate(
            "Please preview your modified entry before posting it."));
    }

Previewをしないと投稿出来なくなっています。
それを確かめたら、
Individual Archives TempleteにあるPostボタンを
削除します。
で、Rebuild!!


はぁ。
これ、凄く手間取ったんです。
原因は良く分からず。
ということで、きちんとメモ。でした。

Comments

  1. こんばんは。MTのスパムに業を煮やして対策方法探していました。参考にさせて頂きます。
    トラックバック文字化けしていますね。垂オ訳ありませんでした。(汗)

  2. お返事遅くなって垂オ訳ありません。
    TBの文字化け高墲ネいですよ。
    なんか、新しいバージョンでは対策とられてると
    聞いたのに、なんか駄目なんですよね・・・。

  3. From kim on 2005.5.5 22:40

    コメントスパムが来るようになり、こちらにたどり着きました。 MT3.01D-j なのですが、コメントできなくなってしまいました。お暇な時にでも助けていただけないでしょうか。こんなのが出ます。
    Use of uninitialized value in string ne at lib/MT/App/Comments.pm line 246.


Leave a Reply

*


CAPTCHA



Trackback

  1. コメントスパム対策 MTHash編

    さくらレンタルではサブドメインが設定できますのでサブドメイン取得しそちらで、もう…


Trackback URL