簡単な BBS spam対策 2006年7月7日

トラックバックspamとともに最近多いのがBBS spamです。一旦BBSを見つけるとそのURLを保持しておいて(おそらく)複数のBBSに同時に書き込みをしています。自動処理をしているので書き込みは24時間続きます。

日本語である場合には使えませんが英文でViagraやポルノサイトを宣伝する書き込みであれば簡単に排除できます。

もっと読む>>

PHPでの例です。$arg が書き込まれた文字列でそれをcheck_mb_str() という関数に通します。

$r = check_mb_str($arg);

8 ビット目が立っている文字が1文字でもあれば英文ではないと判定しています。1が返ったときだけ本当に記録表示します。ゼロである場合には偽のOKの文面を表示します。

某BBSで毎日数百件の英文書き込みがあったのですがこれを入れてゼロになりました。

RBLを使った対策はちょっと面倒だとお考えでしたらこれだけやっても海外からのspamは排除できますのでお試しください。本当は両方やると効果的なのですが。

//		日本語が含まれていれば1を返す
//--------------------------------------------------------------------
function check_mb_str($arg){
	$r = 0;
	$c = strlen($arg);
	for($i = 0; $i < $c; $i++){
		$chr = ord($arg[$i]);
		if((0x80 < $chr)){
			$r = 1;
			break;
		}
	}
	
	return $r;
}

[↑]
ページTOPへ — posted by Q @ 05:17PM