CGI-BBS > 電子掲示板 > 簡易BBS > 簡易BBSの改造で英字のみの投稿を禁止したい。


カレッヂ
カレッヂ


質問者 とよかず  投稿日 2006/7/10(月) 22:41:25
MiniBBS-EX V1.30を愛用しています。
先日から一日数回、英字のスパムメールをたくさん書き込まれ困っています。
毎日削除するのも大変で、神経的にまいっています。
英字のみの書き込みを禁止したいのですが、どう記述すればよいでしょうか?
記述内容と、何行目に書けばよいのかお教えください。

【プロバイダ】http://nachtkatz.serio.jp/myweb/
【習熟度】多少の改造ができる

回答者 rescue  [削除]  投稿日 2006/7/11(火) 09:49:25
最近多いですね。非常に迷惑です。今後設計やバージョンアップする際には、
英字だけの投稿を制限する機能を用意することが必要になってくるのかなと思っています。

ダウンロード直後でいうと1060行目にある次の行の後に、以下のものを挿入してみてください。
成功したかどうか報告いただけると幸いです。

なお、エラーメッセージは自由に修正してください。日本語でしか投稿されない掲示板だと
分かっていれば(英字でコミュニケーションをすることはないということ)、単に「エラー」と表示するか、
push(@ERR,"・・・"); を削除して exit; にしてしまって、サーバエラーを起させてもいいかもしれません。
相手に、エラーの理由を教えないという意味です。原因を教えてしまうことで、1文字でも日本語を
入れて投稿してくるかもしれませんので…。まぁ、そこまでは無いとは思いますが。

if ($in{'_value'} eq '') { push(@ERR,"内容を書いてください"); }

elsif (&chkZenkaku($in{'_value'}) ne 'sjis') { push(@ERR,"日本語で内容を書いてください"); }
sub chkZenkaku
{
 local($line) = @_;
 (@line) = &jcode'getcode(*line);
 $line[1];
}

(参照)
http://www.rescue.ne.jp/study/spam/

----
サポート掲示板利用ご案内の通り、当方はバグと思われる事象以外には参加しません。
ただ、時間が許す場合に例外的に回答する場合がありますが、継続的にやりとりが
出来ない場合があります。ご理解ください。
質問者 とよかず  [削除]  投稿日 2006/7/12(水) 12:56:03
ご回答ありがとうございます。
早速試してみましたが、敵もさるもの!!
日本語(全角カタカナでミ)を1字書いて
投稿されてしまいアウト。ほとほと困りました。
対処の方法はもう無いのでしょうか?
ぜひとも何か良いアドバイスをお願いします。(≧σ≦)
回答者 rescue  [削除]  投稿日 2006/7/12(水) 20:50:12
他に何か特徴はありますか? 私が経験したものだと、[/link]なるタグみたいのが
あって、それが含まれるものを拒否したりしてました。

この手のスパムは設置アドレスを変えれば当分は避けられるとは思います。

最終手段は、パスワード制限したフォルダの中に置いて、トップページかどこかに
そこへ入るパスワードを書いておくとかするしかないかもしれません。

人間の目で見れば一般の投稿とすぐに区別がつきますが、これをプログラム的に
するにはとても大変です。たぶん、いたちごっこです。
回答者 しあわせのツボ  [削除]  投稿日 2006/7/13(木) 12:55:18
連続5文字以上の全角文字とするなら、([¥x81-¥xfc].){5,} ですね。
フィールドをひとつ追加して「漢数字の7を記入してください」などとお願いし、
日本語の読み書きを必須にするとかなり効果的です。
(よく使われてる「画像に書かれてる文字を入れろ」はいろいろと面倒なので)

私の経験上、書き込む業者が少数なら、その文面やURL自体を蹴るのが簡単ですけど。
質問者 とよかず  [削除]  投稿日 2006/7/13(木) 14:52:04
>連続5文字以上の全角文字とするなら、([¥x81-¥xfc].){5,} ですね。
>フィールドをひとつ追加して「漢数字の7を記入してください」などとお願いし、
>日本語の読み書きを必須にするとかなり効果的です。

すみません。具体的にはどのように記述すればよいのでしょうか?
↑のアドバイスの記述とまとめ、合体させた記述内容全体をお教えいただけると幸いです。
どうかよろしくお願いします。
回答者 rescue  [削除]  投稿日 2006/7/13(木) 22:22:45
if ($in{'_value'} eq '') { push(@ERR,"内容を書いてください"); }

elsif ($in{'_value'} !~ /([\x81-\xfc].){5,}/) { push(@ERR,"その他のエラー"); }

続5文字以上の全角文字が"無い"場合はエラーにするのはこんな感じですね。
取り急ぎいま急いで書いているので、間違っていたら指摘してください。
質問者 とよかず  [削除]  投稿日 2006/7/14(金) 00:10:24
ありがとうございました。
上記プログラムを記述して、しばらく様子を見ます。感謝!感謝!
後日状態はお知らせします。
回答者 いのちゃん  [削除]  投稿日 2006/7/15(土) 01:15:36
北のミサイルではないですが、如何にその対策がありや?

核爆発級なら、urlを削除して絶対に書き込み不可能にする。この場合はかなり相手に
ダメージを与え効果は100%です。但し自分も書き込み不可能になる。

その補足としてdirctoryを変更して新に立ち上げる。再発見されるまで有効です。
見つかればまた核爆発を使用する。

そこまでしなくても/data/<777>を<755>に変更すれば、●入力が不適です
書き込み許可(パーミションの設定ミス)されていません。となって新規投稿が不能になる。
自分の書き込みの場合は元の<777>に変更すればその間は正常に書き込み可能です。 
 
パトリオット配備を望むならば、プログラム上の侵入を防止する方法で未然に防ぐことに
なりますが、その方法は既に前例に幾つか示されておりますのでそれを参考にする。
質問者 とよかず  [削除]  投稿日 2006/7/15(土) 14:07:21
皆様の温かいアドバイスを頂戴し、感謝しています。
心の荒廃著しい今の社会にも、沢山の心優しい人たちが居てくれることがとても嬉しいです。

上記続5文字のブロックが効を奏したのか、15日PM2時現在のところスパムは来なくなりました。
もしもまた来るようでしたら、RESCUE様の「海外からの投稿を規制する」の方法を試すのは如何でしょうか?
パスワードで規制する(会員制)のBBSも見受けますが、あまり縛るのはどうかと…
一度当方のBBSにテスト投稿をして検証していただけるとありがたいです。

返信(回答)する

 


Web裏技