apache2 でユーザーごとに時間ごとのアクセスを制限する方法はありますか?

apache2 でユーザーごとに時間ごとのアクセスを制限する方法はありますか?

リクエスト時には、ユーザーID 付きの POST フォームが必須なので、POST フォームのユーザーID をログに記録できれば、そのユーザーID へのアクセスを 1 時間あたり n 回 (1 時間あたり 3 回が適切だと思います) に制限する方法があると思います。 (つまり、ユーザーID "A" は 1 時間に 3 回しかアクセスできず、ユーザーID "B" も 1 時間に 3 回しかアクセスできない、ということになります)

しかし、それをどうやって行うのかがわかりませんでした。

これは、他のサービスを提供するためにリクエストをプロキシするだけです。現在は apache2 で ProxyPass のみを使用しているため、apache2 構成内で構成する必要があります (と思います)。

それを実行する方法はありますか?

答え1

これは Web サーバー レベルではなく、アプリケーション レベルで行う必要があります。つまり、POST 後に、アプリケーションはユーザーに「短時間にリクエストが多すぎます。後でもう一度お試しください」などと伝える必要があります。

私の知る限り、Apache Web サーバー (ただし、これは IIS にも当てはまります) は、HTTP パラメーター (Web サイトや URL など) またはネットワーク パラメーター (ソース IP アドレスや帯域幅の使用量など) を使用してのみ要求を制限できます。


(間違っていたら訂正してください。私は Apache の専門家ではありません。)

答え2

を見てみましょうこのmod_securityの使用例クッキーや URI コンテンツを使用できるため、POST データも抽出できる可能性があります。または、IP を取得してそれを使用するだけで、誰でもフォームに別のユーザー名を入力して回避できます。

関連情報