关于c#:表单身份验证cookie漏洞

Form authentication cookie vulnerability

我有一个关于Form authenticationcookie漏洞的问题。在javascript中,我们可以使用document.cookie访问表单身份验证cookie值(假设它不是httponly)。此值已加密。我在很多博客上读到,如果有人得到了这个价值,我们的安全就会被破坏。我的问题是他(攻击者)如何破坏它(cookie中的凭证),因为表单身份验证加密方法使用机器密钥加密该cookie,所以要解密它,需要相同的机器密钥?不是吗?你能澄清一下,cookie值是如何容易受到攻击的,因为攻击者只有在我的机器密钥被他解密之后,他才能解密它吗?我在这儿吗?


how can he(attacker) breach it(the credentials inside the cookie) since the form authentication encryption

他不必解密加密的cookie。他只需使用cookie的加密值就可以成为你。

服务器进行加密,因此不知道向其提供cookie的浏览器是最初向其颁发cookie的人。

使用诸如modify this cookie之类的扩展(或其他任何实现该功能的扩展)将允许我将cookie设置为您的加密值,如果我能够获得它的话。

具有讽刺意味的是,关于stackoverflow的问题也是如此。看看特洛伊的帖子了解更多信息。


我所做的,不知道它有多大的实际帮助,但我从未见过任何违背(尽管有大约100次尝试)是将cookie与IP地址配对,这意味着我会查找调用是否来自与前一个调用相同的IP地址,如果不是,它会重置cookie,您必须重新登录。这并不完全适用于所有站点,但在我的例子中,更重要的是添加一些安全措施,而不是允许移动。

这种方法可能很容易被MITM攻击所接受,但是你永远不能保护自己免受所有可能发生的情况,除非你有一个庞大的预算,并且没有关于性能和可访问性的限制。