スパム的掲示板書込み防止対策

掲示板サイトを開設しているサイト管理者の悩みの種が,
機械的なURL等の羅列等が有り,
半分あきらめ的に成って掲示板を閉鎖に落ち込まれているかも知れませんが,
何とか成ります。以下の様に改変,改造すれば,少しは免れます。
色々なCGIスプリクト有りますが,その掲示板スプリクトに合う様なのを確かめ
参考にしてみて下さい。

以下のサイトお勧めです。
◎掲示板改造支援サイト - 迷惑な掲示板スパム・掲示板荒らし行為の完全排除
http://swanbay-web.hp.infoseek.co.jp/index.html

私の掲示板サイトは20サイト位い有ります。
試行錯誤で何とか防止対策を出来ました。
後は禁止用語とかNG言語を書き込まれた時,
禁止ワード等をその都度加えて行きました。
英文やURLの大量な書込みを防ぐのには,
プログラム的に以下の改造・追加方法が有ります。
最低限の防止対策です。
パターン例を幾つか上げて置きます。


# 例1
if ($in{'comment'}=~ /http/) {&error("URLは書き込めません");}  # コメント欄
if ($in{'comment'} !~ /(\82[\x9F-\xF2])(\x83[\x40-\x96])/) {&error("コメントに日本語が含まれていません");}

# 例2
if ($FORM{'comment'} eq "") { &er_("コメントが入力されていません!"); } # 空白防止

# 例3
if ($FORM{'comment'} =~ "http://") { &er_("URLを含む投稿はスパム避けのため禁止しています。"); }
if ($FORM{'comment'} !~ /(\x82[\x9F-\xF2])(\x83[\x40-\x96])/) { &er_("日本語を書いてください。");}
# {'comment'}の部分はスクリプトによって異なる場合があります。

# 例4
if ($FORM{'body'} !~ m/[\x80-\xff]/) { &error("コメントに日本語が含まれていません");}

# 例5
if (&chkZenkaku($LINE) ne 'sjis') { &error("エラー","内容文に日本語コードが検知できませんでした。"); }
#
sub chkZenkaku
{
local($line) = @_;
(@line) = &jcode'getcode(*line);
$line[1];
}


## **応用 こんなスプリクトも有ります。
  # URLを含む投稿はスパム避けのため禁止
(!$cont) || ($cont !~ "http://") || &error(6); #error処理ルーチン
#(注意)&error(6)は処理ルーチンの適当な数値です・・・。
  #「半角英数字のみのコメントを弾く」対策
(!$cont) || ($cont !~ /(\x82[\x9F-\xF2])|(\x83[\x40-\x96])/) || &error(10);
#(注意)&error(10)は処理ルーチンの適当な数値です・・・。
   (!$cont) || ($cont =~ m/[\x80-\xff]/) || &error(17);
 #(注意)&error(17)は処理ルーチンの適当な数値です・・・。


わっかないプラザ
Mail-Mikami
戻る