すっかり更新をさぼっていたProtectorですが、ようやくV3が形になりました。
メジャーバージョンが上がっていることからも判ると思いますが、今回は比較的大きな変更を伴っています。
一番大きいのが、XOOPS_TRUST_PATH側に本体を移したことです。このおかげで、セキュリティモジュールを冠しながら、公開側にロジックがデンと置いてある状況、.htaccessなどが効かなかったらPathDisclosureになるかもしれない、という不安から解消されました。
その代わり、mainfile.php に挿入する2行のinclude文が、ROOT_PATHからTRUST_PATHに変更されてます。2.57等からのアップグレードを行う場合、いったんmainfile.phpから削除して、モジュールアップデート後に挿入し直してください。
次に大きいのが、拒否IPの取り扱い変更です。今までは、XOOPS本体の拒否IP機能を利用していましたが、それだとどうしても復旧が大変です。レスキュー画面も使いやすくありませんでした。というわけで、単なるファイルに変更してます。もし自分自身が拒否されても、FTP等でそのファイルを消すだけです。(どのファイルかは、Protectorの管理画面に表示されていますので、事前にチェックしておいてください)
この変更のおかげで、拒否IPの判断にDBが不要となり、DoS系の攻撃にも比較的強くなったと思います。実際、DBコネクション発生の前に拒否できているので、かなり高速に処理が完了します。(もちろん、.htaccessの足下にも及びませんが)
あとは、ここで議論したXSS対策をいれてみました。BigUmbrellaのサブセット版です。副作用や速度的な影響がないように調整したため、POSTなどはノーチェックですが、それでもかなりマシになるとは思います。
http://xoops.peak.ne.jp/md/news/index.php?page=article&storyid=126
もう一つ、XUGJで思いついたグループ1だけのIP制限。結構、いけそうな気がしたので、採用してます。これまた1ファイルに記述されているだけなので、いきなりIPが変わって自分自身がログインできなくなっても、FTP等でそのファイルを消せば復活できます。
最後にSPAM対策。nao-ponさんの「URIの数をカウントする」という方法に感動し、さっそく取り込んでみました。Protectorでは、単純にURIの記述数、という相当にシンプルな形にしてます。このサイトではゲスト投稿を許可していないので効果の程はわかりませんが、運用してみた結果をお知らせいただければ幸いです。
元ネタ:
http://xoops.hypweb.net/wiki/5589.html
同じSPAM対策として、RBLフィルターや英語のみの投稿拒否、なんてプラグインも実装してたりします。
あ、そうそう。忘れちゃいけない。XOOPS Cube 2.1 Legacy RC での動作確認もしてます。
まったく問題なく動いているようです。
chika3 wrotes:
ログを確認したところ、
POST /user.php - 400
POST /modules/weblog/details.php - 400
で、Protectorのログに残る
SPAM POINT: 82
とかの最後の数字って何を示しているのでしょうか?
nobunobu wrotes:
2日間弱で1200件ログたまりました・・・・
(1ヶ月放っておくと20000件弱って事ですね^^;)
ブログはブログで別途ブロックしていたものもこちらが先に検知しますからね・・・・
ってことで、自動無理なら、ログ画面で種別による絞込みフィルタ希望です
GIJOE wrotes:
ついにYYBBSもターゲットですか。
結構怖いですね。
とりあえず、表示件数を最大にして、エイヤっと消してください、ってことで。
nobunobu wrotes:
ログの期間指定による自動削除機能が欲しくなります。^^;
ちなみに、オリジナルのアイデアはnao-ponさんですので、名古屋の方にも一礼しておいてください