比方说,用户登录之后,会在浏览器中产生session id,不做处理的话直接www.www.com/index.php?PHPSESSID=32位号码就能直接登录该用户了。
我的想法是给session id md5加密,ID+IP+自定义字符串,发送到服务器端解密之后判断IP是否与上次登录相同。由于没什么经验,不知道有没有更加好的方法来增加session安全,或者说有没有更好的加密方式?
我的想法是给session id md5加密,ID+IP+自定义字符串,发送到服务器端解密之后判断IP是否与上次登录相同。由于没什么经验,不知道有没有更加好的方法来增加session安全,或者说有没有更好的加密方式?
解决方案 »
- 请教把多个查询参数整合进一句SQL语句的思路或者方法~~~~~~~
- 在线等 急!!!!zend studio报错Unable to run PHPUnit session.Only PHPUnit classes can be
- 关于PHPMailer发邮件多发的问题
- 求个php的无刷新投票代码,带数据库的
- php怎么得到网卡物理地址?
- 这是什么错误?????///急...
- 如何将两个表中的某些字段同时插入到另外一个表中?
- ORA-03106 fatal two-task communication protocol error
- php单点登录方案如何实现。
- 刚学PHP,想问题一下界面如何设计呀??各位勿见笑
- 关于htaccess伪静态规则的问题
- 请问用PHP 怎么获取msn好友 邮箱列表
你说的安全问题确实存在,如果不做处理,只要伪造一个与合法用户相同session id就可以直接登录。
解决方法:
在session中存储一个“安全键”(可由IP+用户名+用户密码+随机串),当用户登录成功后,把“安全键”存储到Cookie中。
然后每次访问时都比较Cookie中“安全键”是否与session中的一致(如果不一致则说明session id是伪造的)。