【发布时间】:2015-11-10 10:29:14
【问题描述】:
我正在使用 ASP.NET 并在服务器上创建一个 cookie,如下所示:
public void LoginCookie(string id, string name, string loc)
{
HttpCookie cookie = new HttpCookie("login");
cookie["name"] = HttpContext.Current.Server.UrlEncode(name); // user name
cookie["avatar"] = loc; // user avatar location
cookie["accountId"] = id; // user id
cookie.Expires = DateTime.Now.AddDays(180); // default expiring
HttpContext.Current.Response.Cookies.Add(cookie);
}
这是检查用户是否登录的代码:
if (Request.Cookies["login"] != null)
{
// login successful
}
我的麻烦是:任何客户端都可以轻松查看 cookie 值。那么,如果他用相同的名称 login 和相同的值 name, avatar, accountId 模拟一个新的 cookie 会发生什么?
如果他这样做,他不需要登录(与 无密码登录的含义相同)。
有什么办法吗?
【问题讨论】:
-
这是哪个网址?我确定我不会在那个 webapp 上注册 :) 有很多关于如何制作登录系统的文档。你真的要自己写吗?饼干? ;_;
-
@Alex 是的。我已经参考了该文件。但他们都告诉我
how to create or how to use a cookie,而不是告诉我how to protect cookie values,就像我的例子一样。我是新来的饼干。你能告诉我更多吗? -
不,我会使用现成的解决方案
-
@Alex -- 为什么这对你来说似乎很难,使用 ASP.NET 的内置加密例程最多应该是几个小时。
-
为什么不使用内置的会员功能来处理授权/认证?
标签: javascript asp.net cookies