ようこそお客さん

worstman.net/Blog


次の記事   前の記事

2007/09/15(土) C-BOARD にASCII 文字列のみのスパム書き込みを排除する機能を付ける

Perl::CGI 最低人間 はてなブックマーク数
 当サイトで使っている BBS の CGI は (SS)C-BOARD という高機能なソフトなのですが、スパムに対する対策があまりとられていないようです。


 なのでちょっと放置したら海外からの自動スパム書き込みがとんでもないことに。


 というわけで対策しろよと言われたので嫌々ながら対策。他にも困っている人がいるかもしれないのでメモしておく。

 C-BOARD 直下の「cmd」フォルダ内に「pst.pl」というファイルがあるので編集する。編集箇所は以下の通り。Ver3.8 で大体 303 行目あたりから。

		if ($item eq 'body') {
			($::FORM{$item} =~ /[!-~]{150}/)
				&& push(@error, "半角文字列は適度に改行してください。");
			$::FORM{$item} =~ s/^(?:(?:@| )*\n)+//g;

 を以下のように修正
		if ($item eq 'body') {
			($::FORM{$item} =~ /[!-~]{150}/)
				&& push(@error, "半角文字列は適度に改行してください。");
			($::FORM{$item} !~ /[\x81-\x9F\xE0-\xFC][\x40-\x7E\x80-\xFC]/)
				&& push(@error, "全角文字を含まない投稿は禁止です。");
			$::FORM{$item} =~ s/^(?:(?:@| )*\n)+//g;


 当たり前だけど、ASCII 文字しか含まない海外からの自動スパムしか対策できない。二バイト文字を含むスパムが来たらその時考えます。

 まぁ、海外からのスパムはほぼ消えるはずです。


#  非公開コメント   

  • TB-URL  http://worstman.net/blog/074/tb/

次の記事   前の記事