【问题标题】:How to securely set up cookie-based authentication in classic ASP?如何在经典 ASP 中安全地设置基于 cookie 的身份验证?
【发布时间】:2011-11-17 23:56:18
【问题描述】:

在经典 ASP 网站中使用 cookie 对用户进行身份验证的最安全方法是什么?

我不想使用 ASP Session 对象,因为会话 cookie 会在一段时间后超时,并且我希望用户能够在不同的浏览器运行之间保持他们对网站的登录活动。

但是,我不想只创建一个包含他们的用户 ID 的 cookie,因为这很容易被伪造 - 那么我有什么选择呢?我猜是某种加密,但我真的不知道这样做的标准方法是什么。

【问题讨论】:

    标签: authentication cookies asp-classic


    【解决方案1】:

    您在这里的选择非常有限。

    让您的用户重新登录;最佳安全方法。

    【讨论】:

      【解决方案2】:

      这显然不仅仅适用于 ASP。

      最好的方法是对密码进行哈希处理...在将密码存储在数据库中的任何情况下,您都应该这样做。

      哈希是一个加密函数——当你通过它运行一个字符串(例如密码)时,你会得到一个长代码。如果输入相同,则输出始终相同。

      但是(这是重要的一点)它在数学上几乎不可能逆转这个过程 - 从散列值开始并计算出密码,而不是蛮力(某人散列字典或随机字符串并寻找匹配的输出他们拥有的哈希值)。

      因此,当用户设置帐户时,他们输入了他们想要的密码,但是您将其散列并存储。同样在 cookie 中,在他们登录后,您存储的是哈希值,而不是密码,这与数据库中的哈希值进行了比较。

      缺点是您无法发送密码提醒,因为您不知道密码 - 您必须发送密码重置链接并拥有系统来执行此操作。

      如果你真的很偏执,你可能会加倍哈希,例如,当他们登录时,密码会被哈希一次并存储在 cookie 中。然后再次对其进行哈希处理并与 db 中的密码进行比较(这也是双重哈希处理)。

      【讨论】:

        【解决方案3】:

        不要这样做

        维护用户登录名“...在单独的浏览器运行之间”是不安全的。恕我直言,当您关闭浏览器时,之前的登录应该消失了。假设您的访客在咖啡店使用社区电脑。

        如果您保持此登录,则下一个社区用户可能会打开浏览器,导航到您的网站,“噗”他们会自动以前一个用户的身份登录。

        【讨论】:

          猜你喜欢
          • 2021-09-20
          • 1970-01-01
          • 1970-01-01
          • 2010-12-02
          • 1970-01-01
          • 2018-04-04
          • 2020-10-08
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多