来源:自学PHP网 时间:2015-04-17 14:11 作者: 阅读:次
[导读] 网络上常见方案是:给Cookies加个加密算法。 给Cookies加个时间戳和IP戳,实际就是让Cookies在同个IP下多少时间内失效。最终使用MD5来MAC签名防止篡改但这样仍然可以看到明文信息,有一定...
网络上常见方案是:
给Cookies加个加密算法。 给Cookies加个时间戳和IP戳,实际就是让Cookies在同个IP下多少时间内失效。 最终使用MD5来MAC签名防止篡改……但这样仍然可以看到明文信息,有一定不安全之处。 我的方案是 cookie==3des(“值,时间,IP戳”); 最终得到的COOKIE是这样的:3BD1B32614A528EA 使用3DES来加密,这样保证客户端没有明文……。 服务端检查的时候,再解密出来值,时间,IP戳,并检查过期时间与IP……不符的需要清空此COOKIE,转向登录页面www.2cto.com.. 这样解决了几个问题 1.客户端COOKIE无明文,得到不任何有用信息……如果使用MD5签名,客户端势必有明文。 2.无法篡改,一旦篡改后在服务端解密的时候就会出错……防止了暴力破解 3.在网络被截获后,也无法使用,因为有IP戳……且IP是加密的,无法看到明文,所以也无法使用伪造IP的方式 4.之所以在客户端存放IP戳,可以使得其在多台电脑上存放COOKIE,如果放在服务端,则只能一台电脑用COOKIE登录了,影响用户体验,且浪费性能查询数据库…… 摘自attilax的专栏 |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com