今朝方弊社のクライアントから文字化けしたような問い合わせメールが入ったと、相談を受け早速内容を転送して頂くと、案の定「スパムメール」です。
最近同様の相談が多く発生している為に、少し対策を撃つことに・・・
スパムメールで一番問題なのが、内容に差し込まれた「リンク」でして、掲示版のようなものならタグを加工してしまえばかなり有効な対策となるのですが、メールの場合URLを貼り付けられると、自動的にリンクになってしまう為、ちょっと別の対策を討つことしました。
取り敢えず、スパムメールの大半を占める英数半角文字の多い内容の場合はメールをブロックする事にした。(全角文字でスパムメールは少ないですから・・・)
$str_cnt = ereg_replace( '[a-zA-Z0-9]', "", $chk_txt ); //半角英数文字を除外する
if( (strlen( $str_cnt )) < (strlen( $chk_txt ) / 2) ) //全体の文字数と除外した文字数を比較
結局、全体の文字数と半角文字数の比率を比較すれば良いので、アルゴリズムは何でも結構です。
簡単に云うと、全体の文字数と半角文字数の比率に応じて、半角文字が多く含まれる場合は、ブロックしてしまうと云う事。
掲示版などでは良く使われている方法で結構実績がある為、今回はこの方式で暫く様子を見ることにした。
2バイトコード圏はこのような対策でもある程度、防御出来るのですが、英語圏はどのように防御しているのでしょうね? 何れにしましても、このようなスパム行為を行う人がいけないのですが、なかなか無くならないのでしょうね? |