おっと,久しぶりにスパムコメントが.以前の対策から来ていなかったのになぜ?ソースコードを見ても2バイトキャラクタは含まれていないし...うーん?
詳しく調べてみてもやはりソースコードには2バイトキャラクタは含まれていない.なぜだろうということで,もう一度mt-comments.cgiをチェック.
以下のようにスパム対策をしていたのだが,これをすり抜けているみたい.
————————
use strict;
use CGI qw(:standard);
if ($ENV{‘REQUEST_METHOD’} eq “POST”) {
my $txt = param(‘text’);
if(($txt ne “”) && ($txt !~ m/[¥x80-¥xff]/)){
print “Content-Type: text/html¥n¥n”;
print “An error occurs¥n”;
die(‘error’);
};
}
———————-
もしかしたら,REQUEST_METHODがPOST以外の方法で,コメントを書き込んでいるのかもと予想して,
————————
use strict;
use CGI qw(:standard);
#if ($ENV{‘REQUEST_METHOD’} eq “POST”) {
my $txt = param(‘text’);
if(($txt ne “”) && ($txt !~ m/[¥x80-¥xff]/)){
print “Content-Type: text/html¥n¥n”;
print “An error occurs¥n”;
die(‘error’);
};
#}
———————-
と該当部分をコメントアウト.さて,これで排除できるか?