使用cookie进行自动登录,cookie是可以被仿冒的,怎么避免别人盗取你的cookie进行自动登录呢?另一个问题,发现很多人说不能把密码放到cookie里面进行自动登录,那自动登录还有什么别的办法么?
我怎么感觉 在加个ip字段呢,只能你这台Ip能用这个密码来登陆######回复 @f223156 : 额,那就不行了.######回复 @妹夫 : 这办法是能取到, 但前提是你的访客和你的服务器在同一个局域网内######回复 @f223156 : http不可以,但是java可以啊,http://babyduncan.iteye.com/blog/892351######回复 @妹夫
@止殇 : 你们想多了, http根本获取不到访问者的mac######而且mac可以仿造啊######第一种解决方案就是sessionID的值只允许cookie设置,而不是通过URL重置方式设置,同时设置cookie的httponly为true。
第二种就是在每个请求里面加上token,每个请求里面加上一个隐藏的token,然后每次验证这个token,从而保证用户的请求都是唯一性。
结合第一种和第二种更安全。
######回复 @xiaochong0302 : 这个不敢苟同,cookie是存在客户端的,客户端被人盗走cookie是你管得了的吗?而服务器我可以管着不让别人偷走了。######回复 @妹夫 : 都能拷贝你的cookie了,你还防个P,你要这样想,那服务器被被人抱走了怎么办?######谢谢哥们儿,第一种,只能防止xss攻击是么?别人拷贝了你的cookie到他的浏览器cookie文件夹里面照样可以实现自动登录。 第二种没怎么明白,请哥们儿不吝赐教啊######第一种解决方案就是sessionID的值只允许cookie设置,而不是通过URL重置方式设置,同时设置cookie的httponly为true。
第二种就是在每个请求里面加上token,每个请求里面加上一个隐藏的token,然后每次验证这个token,从而保证用户的请求都是唯一性。
结合第一种和第二种更安全。
以前我是这样搞的:
把用户对象(包含了用户ID、用户名、是否登录..)序列化成字符串再加密存入Cookie。
密钥是:客户端IP+浏览器Agent+用户标识+固定的私有密钥
当cookie被窃取后,只要任一信息不匹配,就无法解密cookie,进而也就不能登录了。
这样做的缺点是IP不能变动、频繁加密解密会加重CPU负担
o,如果被获取到cookie的话,你session也一样是死。
你真的很害怕的话可以这样子:
加密函数(用户id,服务器端密匙,客户端信息加密(ip,浏览器等))
不可逆的话存 结果和用户id,可逆的话存结果
######排除和目标机器物理接触, 能截到cookie的信息的, user-agent之类的信息同样能获取, 所以,除非绑定IP, 不然怎么加密都是做给瞎子看而已
说穿了, 排除诸如xss之类的程序安全问题, 唯有https才能最大限度的防止被嗅听或者劫持
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。