代码之家  ›  专栏  ›  技术社区  ›  Michael Mao

http基本身份验证-允许的最大试用时间?

  •  0
  • Michael Mao  · 技术社区  · 14 年前

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

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

    然而,有一件事让我担心,不管用户有多少次未能提供有效的用户名/密码凭据,基本身份验证似乎都不会停止。它会一直问。。。

    我认为,由于每次web服务器收到凭据时,都需要通过密码文件来查找是否存在匹配项,因此需要占用一定的服务器资源。我的问题是,这会不会是恶意用户进行DoS攻击的安全风险?

    非常感谢您提前提出的建议。

    2 回复  |  直到 14 年前
        1
  •  1
  •   S.Lott    14 年前

    第一步:阅读以下内容: http://en.wikipedia.org/wiki/Denial-of-service_attack#Prevention_and_response

    第二步:实现这一点。创建一组按IP地址索引的计数器。IP地址的每次失败都会增加计数器。计数器是睡眠时间——以秒为单位。10次失败的尝试意味着401响应需要10秒。

        2
  •  2
  •   nicomen    14 年前

    自己处理http身份验证,根据ip地址(在给定时间内)计算登录次数,然后在达到限制时返回401。

    模块perl 2.0: http://perl.apache.org/docs/2.0/user/handlers/http.html#toc_PerlAuthenHandler

    模式php: http://no.php.net/manual/en/features.http-auth.php

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