0

我正在爲一個新項目的登錄部分工作,這肯定需要用戶驗證。http基本認證 - 允許的最大試用時間?

我這樣做的最簡單方法就是使用http基本認證。我在Apache服務器上很好地實現了它,而且ssl也被用來提供更好的安全性。

但是,有一件事情關注我,似乎基本身份驗證不會停止,無論用戶未能提供有效的用戶名/密碼crentential多少次。它會繼續問...

我認爲,因爲每次Web服務器接收到證書,它需要通過密碼文件來查找是否存在匹配,它需要一定量的服務器資源。我的問題是,這是不是有惡意用戶遭受DoS攻擊的安全風險?

如果是這樣,我該如何阻止?通過在Apache上添加一些配置/功能?或者只是交換到其他身份驗證方法?摘要鑑定?

非常感謝提前的建議。

回答

1

步驟1:閱讀本:http://en.wikipedia.org/wiki/Denial-of-service_attack#Prevention_and_response

步驟2:實現此。創建一組按IP地址索引的計數器。來自IP地址的每次故障都會增加計數器。計數器就是睡眠時間 - 以秒爲單位。 10次​​失敗嘗試意味着401響應時間爲10秒。

+0

感謝您的建議,肯定會去那裏和了解更多。 – 2010-08-21 23:35:51

1

自己處理http身份驗證,根據ip地址(超過給定時間)記錄登錄數量,然後在達到限制時返回401。

的mod_perl 2.0:http://perl.apache.org/docs/2.0/user/handlers/http.html#toc_PerlAuthenHandler

mod_php的:http://no.php.net/manual/en/features.http-auth.php

mod_python的:http://www.modpython.org/live/mod_python-3.2.8/doc-html/tut-more-complicated.html

+0

感謝您的鏈接,永遠不知道在哪裏尋找提示:) – 2010-08-21 23:35:18