【问题标题】:FormsAuthentication and setting the userID/name in an encrypted cookie, security risk?FormsAuthentication 并在加密的 cookie 中设置用户 ID/名称,安全风险?
【发布时间】:2010-01-18 21:57:18
【问题描述】:

Asp.net 将会话存储在 cookie 中,因此不必担心服务器端的会话(传统上会话存储在数据库中,并且通过会话 ID 进行查找,通常是类似 Guid 的字符串) .

在我之前的问题中,我问的是 Spring 应用程序如何存储/创建会话等:Spring authentication, does it use encrypted cookies?

Cletus 指出,将用户名/ID 存储在 cookie 中虽然是加密的,但存在安全问题,因为潜在的黑客拥有加密文本,而且黑客知道实际的加密文本是什么即用户 ID 或用户名。

您对此有何看法? 我确信 StackOverflow 也在使用这种机制,**99.9% 的 asp.net Web 应用程序都以这种方式使用表单验证。 微软的 MSDN 网站本身就充满了这样的例子:

 FormsAuthentication.RedirectFromLoginPage(UsernameTextbox.Text, NotPublicCheckBox.Checked);

在上述代码中,用户名值存储在加密的 cookie 中。 实际上,我记得 asp.net 网站被黑客入侵是因为 web.config 在表单身份验证标记中没有 Protection=All。 那么这是一个真正的问题吗? 重复 cletus 链接到的内容: 如果您想知道“婴儿床”是什么。见:http://www.faqs.org/faqs/cryptography-faq/part03/

密码分析方法包括什么是 被称为实用密码分析'': 敌人不必只是盯着 在你的密文中,直到他发现 出明文。例如,他 可能会假设婴儿床''---延伸 可能的明文。如果婴儿床是 正确,那么他也许能够 推导出密钥,然后破译 消息的其余部分。或者他可能 利用“isologs”——同样的 明文加密成若干 密码系统或几个密钥。于是他 即使在 密码分析理论说他没有 有机会。**

【问题讨论】:

    标签: asp.net security authentication cryptography cookies


    【解决方案1】:

    也许你应该看看这个文档:Improving Web Application Security: Threats and Countermeasures -- Threat Modeling

    这是了解涉及哪些安全风险以及如何减轻这些威胁的良好起点。

    【讨论】:

      猜你喜欢
      • 2012-02-18
      • 2013-12-02
      • 1970-01-01
      • 2013-03-16
      • 2021-05-18
      • 2021-05-24
      • 2011-07-30
      • 1970-01-01
      • 2015-03-06
      相关资源
      最近更新 更多