【问题标题】:http basic authentication - maximum allowed trial times?http基本身份验证-允许的最大试用时间?
【发布时间】:2011-04-02 03:38:21
【问题描述】:

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

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

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

我估计,由于web服务器每次收到凭证时,都需要通过密码文件查找是否匹配,需要一定的服务器资源。我的问题是,这会是恶意用户进行 DoS 攻击的安全风险吗?

如果是这样,我该如何阻止这种情况?通过在 Apache 上添加一些配置/功能?或者只是换成其他一些身份验证方法?摘要式身份验证?

非常感谢提前提供的建议。

【问题讨论】:

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


    【解决方案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

    【讨论】:

    • 感谢您的链接,不知道在哪里可以找到提示 :)
    【解决方案2】:

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

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

    【讨论】:

    • 感谢建议,一定会去那里了解更多。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-04
    • 1970-01-01
    • 2021-04-30
    • 2015-01-11
    • 2021-03-21
    相关资源
    最近更新 更多