掲示板修正

 拙が管理しているヨット部掲示板にちょくちょくSPAMな広告が書き込まれるようになった。まぁ頻度はそれほどでも無いんだけど、書き込まれたらわざわざ消さなきゃならないのが面倒なのと、出かけちゃったりしてると、すぐには対応できないので、ちょっと何とかしようと、CGIをいじってみた。
 書き込み禁止ワード見たいなのがあると楽かなぁと思うのだが、今使っているSmallPICTには、そういう機能はない。IPやホスト規制はできるんですがね。
 なけりゃ、機能を追加すればいいじゃん、ということで、YY-BOARD plusに該当の機能があったので流用することに。
 YY-BOARD Plusのソースの中から、まず 

# 禁止ワード機能を使う(0=no 1=yes)
$badword = 0;
# 禁止ワード機能を使うとき、禁止ワードの設定(「,」区切りで何個でも設定できます)
@errword = (‘死ね’,’逝け’,”);

 の部分をコピーして、SmallPICTのinit.cgiに追記する。場所は「# ▽ホスト名によるアクセス制限」の下。
 次に、同じくYY-BOARD Plusのソースの中から、

# 禁止ワード処理
if ($badword) {
foreach(0..$#errword){
if($name eq “url” && $errword[$_] =~ /http/){ next; }
if($errword[$_] && index($value,$errword[$_]) >= 0){ &error(“「$errword[$_]」は使用出来ない言葉です”);}
}
}

 の部分をコピーしてSmallPICTのsmallpict.cgiに追記。場所は「# フォームデコード処理」の中の「# 改行等処理」の上。
 これで、指定した文字を含めた文章やタイトルで書き込もうとすると、エラーが出て書き込めなくなった。あとは広告書き込みに使われるキーワードを登録しておくだけ。
 ただ、本来であれば「~は使用出来ない言葉です」っていうエラー表示が出るはずなのだが、問答無用でエラーページにジャンプする。
 多分、追加した構文がSmallPICTにあってないのだろうが、なにせ書かれているプログラムの内容を全然理解してない(拙はperlが書けるわけではない、何となく何が書かれてるかわかる程度)ので、これ以上は無理。結果オーライ的改造だが、動いて機能すればいいのよ。
 拙んとこの掲示板も同様の改造施してますんで、不具合があったら教えてちょ。

コメント

タイトルとURLをコピーしました