密码绝对不可能放cookie.这个不需要讨论.
自动登录一般是存的token在cookie里,这个token可以在数据库中验证登录状态.
这样来实现自动登录.这样即使cookie泄漏,至少密码是安全的.最多就是劫持回话
Token怎么用?Token放什么内容?
@七步、: token就是一个唯一标识,放guid之类的.在服务器上接受到这个guid之后到数据库里去查询这个token对应的登录信息,一般像楼下说的会有超时时间,和一些其它的登录信息比如IP啊,地区啊,之类的
@吴瑞祥: 就相当于是把除密码以外的登录信息加密后存放在Cookie,服务器进行解密再验证信息?但这样也可以伪造Cookie啊
@七步、: 能伪造说明你可以登录,再说没有绝对安全,
CIA还分安全等级呢,越安全越不易用,安全的意思是你为了保护1个亿个资产,不会愿意付出2个亿的保护费吧。如果你只有5万,让你付50万的保护费,通常你也是不肯的。铁路一个破网站几个亿,除了80%是公关费用以外,剩下20%里面大部分是安全和性能的,而不是功能费用。
@七步、: 不是加密,只是一个guid,数据都在服务器.别人得到cookie除了登录什么都做不了.
伪造cookie也只是劫持回话,至少不会泄漏密码
@吴瑞祥: 知道了,谢谢
一般这样设计
UserName / Password /Token /LoginTime
Token每次登录的时候自动刷新,并且根据LoginTime过时,
如果要自动登录,保存Token就可以,如果发现Token相同并且LoginTime不超过过时时间,就让用户通过。
大概就是这样的意思了。
Token怎么用?语法是怎样的?
@七步、:
Token 不是一个东西,就是一个说法,你随便弄个不重复的,比如GUID,就行。
@爱编程的大叔: 哦,我还以为是个关键字呢
出于安全考虑,正常情况下是不会把密码保存到cookie中的,不管多严密的算法都存在被破解的风险,特别是大站,目前基本上都是保存Token,如楼上所说。
ASP.NET 的membership本身提供这个加密功能,当然只保存用户名,默认asp.net的登入控件是能直接识别,而且page中的user会被直接设置,具体请参考http://msdn.microsoft.com/zh-cn/library/system.web.security.formsauthentication(v=vs.110).aspx
学习了,Token
最近正好也在研究自动登录这一块,楼上的回答给了不少思路,谢谢分享