CGI-BBS > 電子掲示板 > 簡易BBS > MiniBBSの改造で[http://]を含む書き込みをブロックしたい。


カレッヂ
カレッヂ


質問者 tv  投稿日 2006/9/12(火) 00:38:56
minibbs9.07を使用させていただいておりますが、スパム対策がうまくいかないので書き込みます。
minibbsEXの質問
http://www.rescue.ne.jp/CGI-BBS/bbs/minibbs/20060523145003.shtml
にあったソースを

if ($FORM{'_value'} =~ /http:\/\//) { &error('エラー'.'スパム認定.'); }
と書き直して423行目付近に埋め込んだのですが機能しませんでした。

さすがに毎日チェックして手動で削除するのは疲れましたorz

【習熟度】多少の改造ができる

回答者 アン  [削除]  投稿日 2006/9/12(火) 14:19:31
>if ($FORM{'_value'} =~ /http:\/\//) { &error('エラー'.'スパム認定.'); }
cgi自体見てないんですが、
http://www.rescue.ne.jp/CGI-BBS/bbs/minibbs/20060523145003.shtml
のしあわせのツボさんの投稿通りなら
&error('エラー'.'スパム認定.'); 
じゃなくて
&error('エラー',0,'スパム認定.');
と書かないと動かない筈です。

&errorからはじまるサブルーチンが3つの引数を貰うと思うんですが

質問者 tv  [削除]  投稿日 2006/9/12(火) 22:15:29
>>アンさん
早速の返信ありがとうございます。
早速試してみましたが、

機能しませんでしたorz

一体何がいけないのかも見当もつきません・・・
回答者 hacase  [削除]  投稿日 2006/9/21(木) 01:50:14
cgi初心者ですが、スパムはアドレスでリンクさせなければ意味なくなると思い、

if ($FORM{'value'} =~ /http/) { &error('入力に使えない文字を使用してます.'); }
を追加しました。
これでかなり激減しましたが、それでも意味ない英数字のスパムはあります。
よく対応するなーとスパム恐るべしです。

ロボットはフレームがあるとそれ以上リンクをたどって入ってきにくくなるので
cgiにフレームをつけてhtml形式するのも一案です。

そのときは、cgi名は必ず変えたほうが良いようです!

一度使ったcgi名はリンクがなくなっても半月以上はロボット検索でさえ来歴は残こり
ますから・・・・

質問者 tv  [削除]  投稿日 2006/9/21(木) 12:40:37
返信ありがとうございました。

スクリプトじっくり見ていましたら
417	if ($max_size) {
(省略)
422	}
の間に例の1行を入れていたことに気づき、すこし改良を加えて
424	if ($FORM{'value'} =~ m(|p://|ps://|a href|i)) { &error("規約違反"); }

と入れたところしっかりと弾いてくれました。

アドバイスくださいました皆様、本当にありがとうございました。

このページは終了したので返信(回答)は書きこめません
 


Web裏技