apache2 有沒有辦法限制每個使用者每小時的存取權限?

apache2 有沒有辦法限制每個使用者每小時的存取權限?

請求時,已經需要帶有 userID 的 POST 表單,因此如果我可以記錄 POST 表單的 userID,我認為有一種方法可以限制訪問 n 次(我認為每小時 3 次對我來說比較好)該用戶ID 一小時。 (也就是說使用者ID「A」一小時只能存取3次,使用者ID「B」一小時也可以存取3次,...)

但是,我找不到該怎麼做..

它的作用只是代理請求以提供其他服務 - 現在僅在 apache2 上使用 ProxyPass,因此需要在 apache2 配置中進行配置(我認為)。

有辦法做到嗎?

答案1

不是在 Web 伺服器級別,您需要在應用程式級別執行此操作;即在 POST 之後,應用程式應該告訴用戶「您在太短的時間內發出了太多請求,請稍後再試」。

AFAIK,Apache Web 伺服器(但對於 IIS 也是如此)只能使用 HTTP 參數(例如網站或 URL)或網路參數(例如來源 IP 位址或頻寬使用情況)來限制請求。


(如果我錯了,請糾正我,我不是 Apache 專家。)

答案2

看一眼這個 mod_security 用例可以使用 cookie 或 uri 內容,因此您也可以提取 POST 資料。或者只是獲取他們的 IP 並使用它,因為任何人都可以在表單中輸入不同的用戶名來繞過它。

相關內容