トップページに戻る

YY-BOARDの禁止ワードの拒否設定と日本語を含まないコメントの拒否設定

フリーCGIの掲示板と言えば、当サイトでも利用しているKENTWEBさん提供のYY-BOARD(yybbs)が有名です。
とても使いやすく設置も簡単です。多くのWEBサイトで利用されてます。

ところが当サイトの掲示板では、連日のように不正な書込みがあり困っていました。
IPアドレスでの拒否設定は行いましたが、IPアドレスを変えてくるので効果がありません。アスタリスク(*)を使い、xxx.xxx.*.*と前方一致で拒否しても追いつきません。
拒否設定したIPアドレスは100ちかくなりましたが、全く効果がありません。

そこで、禁止ワードの利用と日本語を含まないコメントを拒否することにしました。

そしてKENTWEBさんのサイトへ行ってみると、新しいYY-BOARD、v7.11が公開されてます。
せっかくなので新しい掲示板プログラムを使ってみました。

今までのコメントは消したくないので、現在の掲示板yybbsのdetaフォルダにあるlog.cgiを保存しておきます。
これを新しいv7.11のlog.cgiに上書きします。

init.cgi内の掲示板タイトルや戻り先を編集します。
あとはサーバに転送し、パーミッション(アクセス権限)を書き換えれば完了です。設置は簡単ですね。

当サイト「できるかな?」はホームページビルダーを使っています。付属しているFTPツールが便利です。
FTPツール
↑ホームページビルダーに付属しているFTPツールでアクセス権限を書き換えてます。とっても使いやすいのでお勧めです。


そしてYY-BOARDが動作することを確認し、テスト書込みを行います。
が、禁止ワードを設定しても書込みが出来てしまいます。
さらには日本語を含まないコメントを拒否する設定がありません。
この2点を解決しなければ、v7.11にした意味もありませんし、迷惑書込みを拒否することができません。

@禁止ワード
init.cgi内に
# 禁止ワード
# → コンマで区切って複数指定(例)$cf{deny_word} = 'アダルト,出会い,カップル';
$cf{deny_word} = '';

という部分があります。ここで禁止ワードを指定するのですが、何度やっても効果がありません。
そしてregist.cgiを見てみると、禁止ワードチェックがあり、禁止ワードは「no_wd」と書かれています。
もしやと思い、
# 禁止ワード
# → コンマで区切って複数指定(例)$cf{deny_word} = 'アダルト,出会い,カップル';
$cf{no_wd} = '';

と書き換えてみました。
これでちゃんと動作しました。
'tp';と書いておくと、http;//〜やttp://〜をしっかりと拒否してくれます。不正な宣伝に使われることは無いでしょう。

しばらくこれで使って、出会い系やアダルト系の書込みをされるようであれば、禁止ワードを追加していこうと思います。

A日本語を含まない(英語のみ)コメントの拒
regist.cgiには
#-----------------------------------------------------------
# 日本語チェック
#-----------------------------------------------------------
sub jp_wd {
if ($in{comment} !~ /[\x81-\x9F\xE0-\xFC][\x40-\x7E\x80-\xFC]/) {
&error("メッセージに日本語が含まれていません");
}
}

という日本語チェックがちゃんと書かれています。
でもテスト書込みでアルファベットだけを打ち込んでみると、掲示板に反映されてしまいます。拒否できません…

もう一度init.cgiをよく確認すると、日本語チェックを行うか否かの指定が無いことに気付きます。
もしかしたらと思い、
# 禁止ワード
# → コンマで区切って複数指定(例)$cf{deny_word} = 'アダルト,出会い,カップル';
$cf{no_wd} = 'tp';

# 日本語チェック(投稿時日本語が含まれていなければ拒否する)
# 0=No 1=Yes
$cf{jp_wd} = 1;

と、禁止ワードのしたに日本語チェックを行うようにプログラムを追加してみました。

結果はこれでOKでした。
#〜はコメントなので、追加するのは、 $cf{jp_wd} = 1;で良いのですが、後からわからなくなってしまうので、上記のように書いておくと良いでしょう。


■まとめ
修正箇所は2箇所です。
私はCGIは全くわかりませんので、コレ以上の修正は行いません。とりあえずちゃんと動作しています。

禁止ワードで「tp」と指定することで、宣伝書込みを拒否し、日本語を含まないコメントを拒否することで、海外からの不正な書込みを拒否できます。

残るは国内の出会い系サイト関連やアダルト関連の拒否ですが、これはIPアドレスを使った拒否設定、さらには書き込まれた文章を見てから禁止ワードに追加していくことで対応したいと考えています。

なお、今回の修正はKENTWEBさんには報告していません。
CGIの知識がありませんので、KENTWEBさんのミスではなく、私の使い方のミスの可能性が高いからです。
でも、当サイトでは、この書き換えたCGIプログラムを使っていきます。