掲示板スパムは何処?
そう言えば、丁度一年前は虫垂炎切除術で一週間程入院生活を送っていた。当時を振り返ると、退院直後からメインサイトのスパム書き込みが増えていったのを思い出す。
当時の対策といえば、BBSのトップページは暗号化したHTML文書としていたけど、投稿段階のCGIは放置故に、検索のキャッシュに残ったCGIからのスパム投稿が見られた。
その後、スパム投稿対策には表示用トップページは暗号化HTML文書を使うというのは同じだが、CGIによる投稿操作でも入力キー受付、発信元IPチェック、投稿内容チェックを行い、疑わしい操作のIPは全登録して以後入力不可となるように変更したのだが、その後は約一年の間、スパム投稿は完全に治まっている。
但し、投稿内容チェックでは、相当に厳しいチェックを行っているせいか、正常な投稿もブロックしてしまう傾向があり、ここ半年では、投稿チェック制限を緩和させている。更には、投稿内容文章も一応ログ化するようにしたところ。
折角投稿して頂いても、弾かれた上に投稿内容が破棄されると、悪意の無い人に対して失礼か?と思えるからだ。
但し、このスパム投稿か否かを判断する条件設定が結構難しいと痛感しているところ。AI的な動作がプログラムで可能なら相当に精度は上げれるのだろうけど、そうではない。結局の処、単語チェックに留まる訳だ。このチェック判断が厳しいと煩わしいし、甘いとザル状態になる。ということで、今はそのチェックレベルの修正を行い実用上具合の良い処を探っている状態だ。
但し、このスパム投稿対策だが、CGIを使って行っているけど、使いすぎて負荷を与えすぎるのもNGであり、新しい対策は、何らかの問題が発生してから対応するというパターンになりそう。
現段階のスパム投稿対策は割とシンプルだけど、一番の良いな!って思える点は、海外からのアクセス全排除と国内の指定IPからのアクセス全排除が基本だけど、そのアクセス禁止IPアドレスをファイル形式で維持しており、そのアクセス禁止IPアドレスが、投稿履歴から内容チェックに引っ掛かるモノが常に追記されるという構造であり、或る意味、投稿内容と履歴から悪意のあるIPを自動収集して禁止データファイルに登録するという形態である。こうすることで、CGIメンテナンスの手間は随分と簡略化される。
モジュールとしては、
・BBS等の本体CGI
本体CGIには、スパム対策が盛り込まれたCGIが望ましい。
このスパム対策でトラップされたIPを下記のスパムフィルター用IPデータファイルに追記する関数を作成する必要あり。
・IPスパムフィルター等の前処理CGI
デフォルトのスパムフィルターでは禁止IPデータファイルの自動更新が出来ない。禁止IPの追記は上述のBBSのCGIを改造して関数を作成すれば可能。
こうすれば、簡単に精度が高く、メンテナンス頻度を減らせるスパム対策BBSが設置できる。CGIを激しく駆動させるとサーバー負荷が増えるという弱点に対しては、BBSトップページをHTML表示するタイプが一番良いとも思う。
| 固定リンク
コメント