DoS攻撃を回避するモジュールを公開しました。
ウェブサーバへのアクセス状態をIPアドレスをキーに外部配置したデータの永続性のあるKVS(Redis)に格納し、一定期間に閾値を超えるアクセス件数があった場合に遮断します。
=プログラムに処理を渡さず直接ブラウザにエラーを返却します
中規模以上のサイト(複数のウェブサーバが配置される分散環境)では、(サービス提供に必要な)最適なサーバ配置が求められるので、ウェブサーバの増減がちょいちょい発生しますが、そのようなケースでも閾値の見直しをしなくても良いような仕組みにしています。
なお閾値はURL単位でも設定できます。
重い機能やログイン機能などにそれぞれお閾値をセットすることで、アクセス集中によるウェブサーバの高負荷を回避したり、不正なログイン試行を遮断することができます。
どうぞ、お試しください。
https://github.com/kurosawatsuyoshi/doshelper
https://bitbucket.org/kurosawatsuyoshi/doshelper