2006/5/19 金曜日

Web Forumの改造 (禁止ブラウザとLink数の設定)

Filed under: CGI,プログラム — GRN @ 22:54:26  

KENT WEBで配布されているCGI掲示板 Web Forumの改造です。

これは使いやすくて、いい掲示板でいろいろなサイト使われているます。

そのため掲示板を対象としたスパムも多くあります。

自分のサイトではスパムの多くはPerlを使って定期的にプロキシ通して書き込まれます。

プロキシを通してしいるので、IPの規制では意味がありません。

その対策として設定に禁止ブラウザとLink数の上限を指定できるようにします。

まず、wf_init.cgi をテキストエディタで開くとパスワードなどいろいろ設定する「基本設定」があります。

その設定項目の中に以下を追加します。

#一つの記事に対するlinkの数
$maxlink=3;

#投稿を禁止するブラウザ
$banbrw=’libwww-perl’;

次に wf_init.cgi をどんどん下を見ていくと(約2/3あたり?)「入力チェック」を判別するスクリプトがあります。

そこに

# 他サイトからのアクセスを排除
if ($baseUrl) {
local($ref) = $ENV{‘HTTP_REFERER’};
$ref =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack(“C”, hex($1))/eg;
if ($ref && $ref !~ /$baseUrl/i) { &error(“不正なアクセスです”); }
}

#メッセージ内のLinkの数の確認
if ($in{‘message’} =~ /(http:[w.~-/?&=@;#:%]+.+){$maxlink,}/ ) {
&error(“Linkの数が $maxlink 以上です。Link数を減らしてください。”);
}

を追加します。

追加した感じはこんなのふうになります。

#—————-#
# 入力チェック #
#—————-#
sub chk_form {
# POST限定
if ($postonly && !$post_flag) { &error(“不正なアクセスです”); }

# 他サイトからのアクセスを排除
if ($baseUrl) {
local($ref) = $ENV{‘HTTP_REFERER’};
$ref =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack(“C”, hex($1))/eg;
if ($ref && $ref !~ /$baseUrl/i) { &error(“不正なアクセスです”); }
}

#ブラウザ判定
$brw = $ENV{‘HTTP_USER_AGENT’};
if($brw =~ /$banbrw/ ){
&error(“このブラウザからの投稿は禁止されています。”);
}

if ($in{‘name’} eq “” || $in{‘name’} =~ /^(x81x40|s)+$/)
{ &error(“名前の入力モレです”); }
if ($in{‘message’} eq “” || $in{‘message’} =~ /^(x81x40|s|
)+$/)
{ &error(“コメントの入力モレです”); }
if ($in_email && $in{‘email’} !~ /[w.-]+@[w.-]+.[a-zA-Z]{2,5}$/)
{ &error(“E-Mailの入力が不正です”); }
if ($in{‘sub’} eq “” || $in{‘sub’} =~ /^(x81x40|s)+$/)
{ &error(“題名の入力モレです”); }
if ($in{‘url’} eq “http://”) { $in{‘url’} = “”; }

#メッセージ内のLinkの数の確認
if ($in{‘message’} =~ /(http:[w.~-/?&=@;#:%]+){$maxlink,}/ ) {
&error(“Linkの数が $maxlink 以上です。Link数を減らしてください。”);
}

}

そうすると、掲示板で確認してみると

Web Forum改造

Web Forum改造

という様になります。

——————————–
プログラムが見にくいのでこちらの方が見やすいかな?
プログラム改造部分


TrackBack URI :

    【関連記事】
      None Found

2件のコメント »

  1. こんばんは。
    ありがとうございます。
    早速利用させていただきました。
    これで減ってくれるとうれしいです。
    今後ともよろしくお願いします。

    Comment by ikuyubon — 2006/5/20 土曜日 @ 0:11:57

  2. コメントどうもです。
    自分のBBSでは、これでスパムが結構減りましたよ。

    Comment by GRN — 2006/5/20 土曜日 @ 0:24:57

この投稿へのコメントの RSS フィード。 TrackBack URI

コメントする

  • ブログSEO対策 : track word 
  • SEO 
  •  
  •  
  •  
RSS feed meter for http://blog.guron.net  
36 queries. HTML convert time: 0.218 sec. © 2004-2007 GRN All rights reserved