#--- [記事投稿に関する設定] ----# $moji_check = 1; # 日本語文字判定(通常は1、それでもスパム投稿されるときは2を指定します。) # 0=この機能を使用しない 1=jcode.plで判定 2=ひらがな・カタカナで判定 # $topok= 1; # 親記事投稿はだれでも可能?(1=YES 0=管理者のみ) $he_tp= 0; # 返信を親記事投稿者のみの権利にする?(1=YES 0=NO)
chmod(0666,"$i_dir/$file");
}
if($FORM{'UP'} eq ""){
# 日本語文字チェック
if($moji_check==1 && &jcode::getcode(\$comment) ne 'sjis'){
&er_('日本語文字が含まれていません.');}
if($moji_check==2 && $comment !~ /(\x82[\x9F-\xF1])|(\x83[\x40-\x96])/){
&er_('ひらがな・カタカナが含まれていません.');}
if($name eq ""){&er_("名前が未記入!");}
if($comment eq ""){&er_("コメントが未入力!");}
if($email && $email !~ /(.*)\@(.*)\.(.*)/){&er_("E-メールの入力内容が不正です!");}
上記2つのファイルを修正したらサーバに上書きアップロードしてください。
これで記事の内容が英文のみ、あるいは「ひらがな・カタカナ」が含まれていなければ投稿拒否されます。
I-BOARD2001 v2.4 の場合も Child Tree と同様のスパム対策が可能です。
set.cgi は上記を参考に書き換えます。
日本語文字チェックは ibbs.cgi の 813 行目付近
更新履歴
2008/01/06
故意に文字化けを発生させ日本語文字判定をすり抜けるスパムへの対策として「ひらがな・カタカナ」文字を [ぁ-ん] [ア-ン] までと厳密に判定するようにしました。