gpt4 book ai didi

asp.net - 我可以通过将它与 session ID关联来使我的ASP.NET FormsAuthentication cookie更加安全吗?

转载 作者:行者123 更新时间:2023-12-04 13:12:40 25 4
gpt4 key购买 nike

我们注意到,可以在另一台计算机上重新创建ASP.NET FormsAuthentication cookie的副本,从而使第二台计算机无需登录即可进行身份验证。

一种建议的解决方案是将 session ID存储在FormsAuthenticationTicket.UserData中,并检查两个值在Application_AuthenticateRequest()中是否匹配。

我们正在使用:

FormsAuthenticationTicket.IsPersistent = false;

将FormsAuthentication cookie与 session ID关联的这种方法是一个好主意吗?

最佳答案

我认为您正在考虑这个问题。复制cookie的能力仅仅是cookie的固有问题-任何人都可以拦截任何cookie并通过在另一台计算机上进行设置来模拟其中的任何数据。

身份验证cookie的“安全性”来自以下事实:没有人可以(应该)手工制作该cookie来伪造经过身份验证的用户。但是,一旦创建了cookie,就可以将其用于身份验证。这意味着,为了使您的“问题”发生,您仍然需要首先具有有效的用户登录名。如果该用户通过将其cookie复制到其他计算机以使所有人都可以滥用系统,则与用户只是告诉所有人她的用户名和密码完全相同,只是更加晦涩。因此,问题不是复制cookie,而是用户自己。

另一个攻击媒介是网络受到破坏,有人可以通过嗅探器或其他方法拦截流量以将Cookie拼凑在一起-但是,这又是cookie本身固有的。这称为 session 劫持,防止这种情况的唯一方法是对您的站点使用SSL。

如果您真的担心它,我将身份验证和 session 超时设置为相同,然后在您的global.asax文件中,只要用户 session 过期,只需调用FormsAuthentication.Signout()。每当用户完成其 session 时,这会使身份验证无效,从而迫使他们稍后再次登录。当然,这可能会给您的用户带来极大的烦恼。

我也强烈推荐This MSDN article。它可能比我更好地回答了您的问题。

关于asp.net - 我可以通过将它与 session ID关联来使我的ASP.NET FormsAuthentication cookie更加安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/781766/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com