解决通过Cookie进行网站自动登录的安全性问题
2009-07-23 13:25
405 查看
有很多Web程序中第一次登录后,在很长时间内再次访问同一个Web程序时就无需再次登录,例如博客园本身和一些音乐2.0网站。实现这个功能关键就是服务端要识别客户的身份。而用Cookie是最简单的省份验证。通过把userID和密码保存在cookie中就能自动登录。这样很容易被人修改cookie而仿冒他人进行登录,安全性不好。
解决办法是配合服务器端的验证,很多人用session持久化的方法,个人觉得不太好,我想到的实现方法是:
1. 用户每次登录时,服务器端生成一个唯一验证码,例如36位的GUID,存入数据库用户表中。同时保存该验证码到Cookie。
2. 用户访问网站时,例如访问 /home?uid=43845958,首先检查cookie里的UserID,如果没有就跳转到登录页面。然后再检查cookie里的验证码,如果和服务端数据库里的验证码一致,就说明是用户本人,否则跳转到登录页面。
3. 好处是如果用户篡改了cookie的UserID仿冒别人,也不会通过服务器端的验证码验证。
(这个cookie/或者叫token的原理和反CSRF攻击的原理类似。)
暂且想到的就这些,如果有更佳实践请不吝告知。
解决办法是配合服务器端的验证,很多人用session持久化的方法,个人觉得不太好,我想到的实现方法是:
1. 用户每次登录时,服务器端生成一个唯一验证码,例如36位的GUID,存入数据库用户表中。同时保存该验证码到Cookie。
2. 用户访问网站时,例如访问 /home?uid=43845958,首先检查cookie里的UserID,如果没有就跳转到登录页面。然后再检查cookie里的验证码,如果和服务端数据库里的验证码一致,就说明是用户本人,否则跳转到登录页面。
3. 好处是如果用户篡改了cookie的UserID仿冒别人,也不会通过服务器端的验证码验证。
(这个cookie/或者叫token的原理和反CSRF攻击的原理类似。)
暂且想到的就这些,如果有更佳实践请不吝告知。
相关文章推荐
- 关于通过Cookie进行网站自动登录的安全问题
- java操作cookie 实现两周内自动登录 加密安全性问题
- android 通过设置cookie解决app 登录后WebView还要重新登陆问题
- jsp通过Cookie实现网站自动登录
- JAVA通过Session和Cookie实现网站自动登录的技术
- 通过Cookie存放用户登录信息以及安全性问题
- JSP 通过Session和Cookie实现网站自动登录
- JAVA通过Session和Cookie实现网站自动登录的技术
- java通过Cookie实现网站自动登录
- 解决PHPcms 2008 sp4 注册选择模型关闭后,注册不能自动登录的问题
- 用百度siteapp的uaredirect.js判断用户访问端而进行域名的自动跳转,并通过cookie记录手机访问电脑端的状态
- 关于“解决实现注册用户后,自动具备访问网站的权限的问题”文章中配置出现找不到角色的问题的解决办法
- iOS UIWebView 通过 cookie 完成自动登录实例
- 匿名用户访问用发布站点模板创建网站的列表项时要求登录的问题解决
- jsp通过Cookie实现自动登录
- Oracle中的两种验证方式:操作系统验证和密码文件验证,通过操作系统验证的方式解决客户端登录不了数据的问题
- 解决ecshop因为动态ip问题登录后台自动退出
- windows2003出现无法自动登录的问题解决办法
- nginx反向代理和rewrite进行解决跨域问题、去掉url中的一部分字符串,通过nginx正则生成新的url
- Mac 关闭chrome的自动更新解决版本更新造成的自动化测试脚本执行不通过的问题