session 安全吗?

登陆成功之后存入$_SESSION['openid']
注销的时候销毁这个值。

openid代表着唯一的用户标识符,在系统中起着关键作用。
openid是明文传输和保存的。

很容易就能伪造session吗?这样做安全吗?
如果不安全求改进方式?谢谢

阅读 6.2k
4 个回答

$_SESSION都是保存在服务端的,是安全的

服务器端的session本身是可靠的。需要妥善加密的是cookie数据。只是一定记得:注销session,不止有“用户退出登录”一种情况。例如用户修改密码时,就必须要给用户重新建立session,确保所有旧密码登录的其他终端被踢下线。

session数据中最好记录用户的上次活动时间,这样可以允许服务器不承认间隔太久未来访的用户。

注:http回放攻击是防不了的。

关于 明文传输和保存

一般都是随机字符串

session是可以通过中间人攻击获取的,而且获取的代价非常低(http),android系统上各种非常
简单易用的软件可以搞,点几个按钮就可以了。

可以通过 https 来做的更安全一点

https也是可以通过其它手段去hack的,比如ssltrip

可以看看这个小demo