今年くらいに入ってから掲示板だけでなく、メールフォームからの迷惑書込みが目立つようになって来ました。従来は、拡張子がcgiの掲示板などが対象だったのが、入力フォームのhtmまたはhtmlも対象になったというありがたくない対応によるものだと思います。
最近のバージョンは対策が行なわれていると思いますが、設置などの説明を読むのが面倒なので、簡易的に入力された内容全体で"http"というキーワードが5個以上含まれる時には、「FAXまたは電話で問合せをして下さい」といったメッセージを表示するようにしました。他のパターンの書き込みには対応しませんが、現時点での海外からのロボットに単純な書き込みなので大体カットできるようです。
元のスクリプトは、http://www.rescue.ne.jp/ の「;# WebFORM v4.0 is Free. (SJIS仕様)」です。1998年がプログラム修正の最終年になっています。10年近く前のものですね。ここの50行目くらいからに数行追加しました。最近はKENT WEB、WebLibetyさんのものを使っています。レスキューさんは懐かしいですね。先程久しぶりにサイトを見たらデザインも大分変わっているような気がしました。
最近のバージョンは対策が行なわれていると思いますが、設置などの説明を読むのが面倒なので、簡易的に入力された内容全体で"http"というキーワードが5個以上含まれる時には、「FAXまたは電話で問合せをして下さい」といったメッセージを表示するようにしました。他のパターンの書き込みには対応しませんが、現時点での海外からのロボットに単純な書き込みなので大体カットできるようです。
元のスクリプトは、http://www.rescue.ne.jp/ の「;# WebFORM v4.0 is Free. (SJIS仕様)」です。1998年がプログラム修正の最終年になっています。10年近く前のものですね。ここの50行目くらいからに数行追加しました。最近はKENT WEB、WebLibetyさんのものを使っています。レスキューさんは懐かしいですね。先程久しぶりにサイトを見たらデザインも大分変わっているような気がしました。
$http_count_limit = 5; # 今回追加
$http_count = 0; # 今回追加
#デコード
@pairs = split(/&/,$buffer);
foreach $pair (@pairs) {
($name,$value) = split(/=/,$pair);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg;
$name =~ tr/+/ /;
$name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg;
$http_count += $value =~ s/http/http/g; # 今回追加
&jcode'convert(*name,'sjis'); &jcode'convert(*value,'sjis');
----- 中略 -----
}
#入力チェック
# 以下の5行、今回追加
# push(@DATA_NS,'http_count'); push(@DATA_VS,$http_count);
if ($http_count_limit<$http_count) {
&error('送信不可','内容が迷惑書込みと判断されました。FAXまたは電話でお問合せ下さい。');
}





