防止cookies欺骗--相关解决方案

一、网络上提供的解决方案
1、
最简单的是给Cookies加个加密算法。
保险点的是给Cookies加个时间戳和IP戳,实际就是让Cookies在同个IP下多少时间内失效。

2、
实际上是这样的,不管cookies里保存了多少个字段,最后,还要增加一个验证字段,或者称为MAC码。这个码是使用上面所有字段的内容合算出来的摘要再用一种加密算法,如3DES等使用服务器的主密钥进行加密。 这样,在从cookies得到数据后,再判断一下这个MAC码就可以知道整个cookies字段是否被篡改过。

3、
我的个人意见:(想过,正准备用上)
response.COOKIES("LOGIN")("MD5COOKIES")=MD5(服务器IP&客户IP&客户ID) ///等等,看着办吧。
然后 if MD5(服务器IP&客户IP&客户ID)<>request.COOKIES("LOGIN")("MD5COOKIES") then 立即清除全部COOKIES end if
补充:上面我写的那个,客户IP不能带上。我想可以改用网卡的MAC或硬盘的SN码。

4、
做项目的时候研究了一下,理论上应该是杜绝了cookies欺骗,我的做法如下: 
自己做session,不用服务器的session功能,大网站都是这样做的,还可以做到session 
跨站。 
用户第一次访问站点的时候,程序产生一个随机sessionID,然后以cookies的方式发给客户端, 
然后将该md5(sessionID+加上该客户断信息(如IP,端口等))和状态信息一起存入数据库, 
这样就算cookies被盗,也有99%的把握不被欺骗。

5、
要防止这个,在写网页的时候就不要相信cookies,例如用户登陆时,记录用户的账号和密码到cookies里,其他叶面就不能直接使用这个cookies,特别是数据库操作,每个叶面都要把cookies与数据库中的用户名和账号对照,如果不吻合,就清空cookies,按非会员操作,即使吻合,进行数据库操作时也要检查字段,阻断注入。

6、
参考动网防Cookies欺骗,利用动态密码与Session+Cookies双重验证


二、自己最终解决方案
username ip rndcode,分别为用户名、ip、随机码,数据库中多添加两个字段,分别为当前登录ip、随机码
实现原理:
(1)、加密不可逆,cookies被获取后不起作用,其中ip在起着重大作用
(2)、暴力破解成功,ip换成自己机器的,可正常访问,但前提是此用户一直未登录过,否则数据库中随机码大显身手

你可能感兴趣的:(编程相关)