May 07, 2006英語コメントスパムへの対処今までコメントスパムの対処方法として『HTMLタグを徹底的に認めない』や『禁止IPに登録されたのをわからなくする』、『MD5等を使ってコメント欄を偽装する(こちらは記事にしていません)』などを行ってきましたが、先日等々大量の英語スパムに見回れました。仕方がないので、英語スパムを駆除する方法を考えることにしました。 方法としては、日本語の文字が入っていないものをはじく方法を採用することにしました。特定の人が投稿できなくなる可能性があることに抵抗があったため、今までやらなかったのですが、とうとう諦めることにしました。 どうやらこの手の対策はプラグインでできるようですが、それらのプラグインはMovableType 3を要求しているようです。このサイトは未だにMovableType 2.661で運営されているので、動作するかわかりません。 そこで、いつものことながらソースをハックします。 use Jcode;
すると$str_encodingに英語のみの場合は'ascii'が、日本語が含まれる場合は'UTF-8'等が代入されます。詳しくはJcodeのマニュアルをどうぞ。my $str_encoding = getcode($str); そこで以下の改造をしました。 /path/to/MT/lib/MT/App/Comments.pm(MT2.661だと162行目付近)に追加 use Jcode;
my $comment_encoding = getcode($q->param('text')); if ($comment_encoding eq 'ascii') { return $app->redirect($entry->permalink); } これで英語コメントを無条件にはじけます。 コメント
通りがかりです。 slightlyblueさん、コメントありがとうございます。 MT3に移行して、TypeKey認証を使わない、という手があります.. MT3にもともと入っているプラグインにスパム除去フィルタがあって、それが強力なようですよ。 Posted by: slightlyblue : May 14, 2006 11:55 AMslightlyblueさん、どうもです。 コメントする
|
スポンサード リンク
|