【问题标题】:asp.net membership provider compromised?asp.net 会员供应商受到威胁?
【发布时间】:2009-03-23 15:13:37
【问题描述】:

我使用的是开箱即​​用的标准 aspnet 会员提供程序,并且我在 web.config 中有以下设置:

<anonymousIdentification enabled="false"/>
<authentication mode="Forms">
    <forms cookieless="AutoDetect" loginUrl="~/XXXX.aspx" name="XXXXAuth" slidingExpiration="true" timeout="432000"/>
</authentication>
...
<membership defaultProvider="XXXMembershipProvider">
    <providers>
        <add name="XXXMembershipProvider" type="System.Web.Security.SqlMembershipProvider" applicationName="XXX" connectionStringName="XXX" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="true" minRequiredPasswordLength="5" minRequiredNonalphanumericCharacters="0" passwordFormat="Hashed" maxInvalidPasswordAttempts="5" passwordAttemptWindow="10" passwordStrengthRegularExpression=""/>
    </providers>
</membership>

今天我遇到了一个问题,用户报告说他们去登录并注意到该网站说他们已经登录......作为一个完全不同的用户。在联系了这两个用户后,事实证明两者都没有从共享计算机访问该站点。两个帐户的数据均未在数据库中显示任何被“黑客入侵”的迹象。

托管在负载平衡器后面的两台 Web 服务器上。数据库架构是一台用于读取的服务器,一台用于写入的服务器,通过复制使它们保持同步。

有人知道是什么原因造成的吗?

【问题讨论】:

    标签: sql-server-2005 asp.net-membership membership-provider provider


    【解决方案1】:

    cookieless=AutoDetect 可以实现这一点。如果某个用户的浏览器不支持 cookie,asp.net 将在 url 中嵌入加密的身份验证票证。如果用户碰巧与其他人分享了一个链接,或者不太直接地在论坛上发布了该链接,那么他(她)正在无意中访问他(她)的帐户。

    【讨论】:

    • 嗨弗雷迪,感谢您的出色建议。但是,当我关闭 cookie(在 IE7 和 FF3 中)时,我看到 URL 行为发生了变化,但无法登录。很遗憾,我似乎无法证明您的建议有效。
    【解决方案2】:

    我想知道负载均衡器有多聪明,以及它是否也可以缓存页面。

    会员 cookie 被该死的锁定了,因此非常怀疑它是否已被泄露。如果负载均衡器也在缓存,它很可能不会传递请求。

    【讨论】:

    • 恐龙在地球上行走时看到了这一点,使用代理缓存登录用户的内容并发送给未登录的用户。这很搞笑,但当时没有人在笑。
    猜你喜欢
    • 2011-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-11
    • 2011-02-23
    • 1970-01-01
    相关资源
    最近更新 更多