http基本身份验证 - 允许的最长试用次数?

时间:2010-08-21 23:20:29

标签: security authentication web-applications login basic-authentication

我正在为新项目的登录部分工作,这肯定需要用户身份验证。

我认为最简单的方法是使用http基本身份验证。我在Apache服务器上实现了很好,ssl也被认为可以提供更好的安全性。

然而,有一点让我担心,无论用户多少次无法提供有效的用户名/密码信息,基本身份验证似乎都不会停止。它会一直在问......

我估计,因为每次Web服务器收到凭据时,都需要通过密码文件来查找是否存在匹配,它需要一定量的服务器资源。我的问题是,这是恶意用户遭受DoS攻击的安全风险吗?

如果是这样,我怎么能阻止这个?通过在Apache上添加一些配置/功能?或者只是换成其他一些身份验证方法?摘要认证?

非常感谢提前的建议。

2 个答案:

答案 0 :(得分:2)

自己处理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

答案 1 :(得分:1)

第1步:阅读:http://en.wikipedia.org/wiki/Denial-of-service_attack#Prevention_and_response

第2步:实现这一点。创建一组由IP地址索引的计数器。来自IP地址的每次故障都会增加计数器。计数器是睡眠时间 - 以秒为单位。 10次​​失败尝试意味着401响应10秒。