Apache Web サーバーの別のセキュリティ上の注意事項を探しています。私は通常、PHP と MySQL を使用します。
ユーザー ログインなどのプロセスでは、IP アドレス、試行回数、前回の試行時間をデータベースに保持しているため、過去 n 分間または数秒間に誰かが x 回以上試行した場合、単純に IP アドレスをブロックします。
ユーザー ログインなどのさまざまなプロセスが多数ある場合、IP アドレスをデータベースに保持するのは正しくないように思えます (パフォーマンスの低下と、やるべきことが多いため)。セキュリティが必要な場合、パフォーマンスをいくらか犠牲にする必要があることはわかっていますが、ユーザーがあまりにも多くのリクエストを行うのを止めるより良い方法はありますか? 多分Apacheへのモジュール?または、サーバーに対するより低いレベルの警告ですか? 私は特に、不必要なデータベース作業を避けようとしています。
CAPTCHA の使用を検討しましたが、すべてのフォームに使用するとユーザー エクスペリエンスが損なわれます。そして、n 分の x リクエストの後にそれを使用するには、私が言及した最初のテクニックが必要です。
キャッシュ システムが役立つかもしれませんが、ブルート フォース攻撃やデータベースがゴミでいっぱいになるのを防ぐ方法がわかりません。私の知る限り、データベースからの読み取りにのみ役立ちます(間違っている場合は修正してください)。