使用单个cookie处理整个身份验证和授权是否可以?

时间:2014-02-16 21:54:35

标签: asp.net cookies

我习惯使用单个cookie进行身份验证和授权,该cookie中包含用户ID。在每个页面上,我将检查用户是否存在此用户ID。 使用存储在客户端的单个cookie值来处理整个用户身份验证和授权是否安全? 我想根据与我的方法相关的安全问题找到答案。 我的网站是否会因使用创建假cookie而被轻易入侵?

1 个答案:

答案 0 :(得分:0)

  

使用创建虚假Cookie会不会轻易入侵我的网站?

答案是肯定的。

如何

恶意用户在您的系统中创建虚拟帐户。然后使用Chrome浏览器中编辑此Cookie 等工具更改Cookie值(用户ID)。

enter image description here

如果用户ID是Guid,则有点难以猜测。然而,这是一场等待发生的灾难。

如何预防

由于您使用的是ASP.Net,因此最简单的将是ASP.Net Form Authentication。这是一个例子,

FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1,
        "userName",
        DateTime.Now,
        DateTime.Now.AddMinutes(30), // value of time out property
        false, // Value of IsPersistent property
        String.Empty,
        FormsAuthentication.FormsCookiePath);

string encryptedTicket = FormsAuthentication.Encrypt(ticket);

如果您对表单身份验证有疑问,请在Google和StackOverFlow中搜索。