2009/11/26 (自分メモ)1行掲示板の改良


 昨日あたりから1行掲示板(MMOCHAT)のほうにラトビア方面(188.92.75.82)からスパム書き込みが・・・。たぶん記載されたURL踏んだりすると悪質なウイルスにかかったりするので要注意ですヨ!
 国内だったらISP調べて「ゴルア!」できるんだけど、海外、しかもブラックリストに入ってるような所なのでブロックするしかなく、リネージュ時代は必死な業者が多くて日常茶飯事だったけどWLOでは初めてIP拒否機能を設定してみたヨ。

 以下、専門的な記事になりますご注意。

 mc_write.plの120行目あたり。

if($ENV{'REMOTE_ADDR'}eq$_){return 〜以下略

 このままだと完全一致なので、拒否IPを1つづつ羅列するしかないんですが、今回は範囲(188.92.75.*)でブロックしたいので前方一致に改造。

if( index( $ENV{'REMOTE_ADDR'},$_) ==0 ){return 〜以降同じ

 欠点としては、例えば192.168.1.2の1個をブロックしようとしても、最後が200台、20台も該当しちゃう点。まぁ海外IPの広範囲排除用ということで無問題ということにしておこう。。。


 ついでに名前のパスワード処理のほうも改善してみた。
 いままでは例えば「いとっち」を含む名前全てにパスワードが必要でしたが、それじゃ「ないとっち」でも該当しちゃって不便なので。。。

 同じくmc_write.plの77行目あたり。

if(index($obj{'name'},$name)>=0)

 このままだと「該当文字列が含まれていたら」になっているので、

if($obj{'name'} eq $name)

 完全一致に改造してみた。IP拒否と同じく前方一致でもいいかもですが。


 ここの1行掲示板はもともとリネージュ1仕様でチルム氏が作られたものを、画像やチャット出力形態をいじって当方がWLO仕様に改造してます。
 CGIスクリプトはあまり詳しくなくてネット検索で調べながらやってます。
 今回の改造で不具合出たらごめんなさいなのです。アセアセ。

2009/11/26

戻る