我需要在PHP中的$_SESSION
变量上放置一些重要数据,并想知道这些数据是否安全。客户是否能够查看此$_SESSION
变量中的信息?在会话中存储敏感数据是否有任何安全隐患?
答案 0 :(得分:2)
不,客户端无法查看会话数据,因为它存储在服务器端。但是:
如果您在共享服务器上,则与您共享服务器的其他人也无法访问它。
此外,会话数据使用存储在客户端cookie中的会话ID绑定回用户。如果Bob能够获得Alice的cookie,他就可以冒充她了。
如果我不提出一些解决方案,我想我的答案还不完整,所以:
要解决第一个问题,您应该将加密数据存储在会话中。
要解决第二个问题,您还应该比较IP地址等其他内容,以确保Bob不会尝试使用其他人的cookie。这样,如果Bob窃取了Alice的cookie,您就可以将Bob的IP与您在会话中存储的Alice的IP进行比较,并发现不匹配。
答案 1 :(得分:1)
确实需要你采取措施让会议更安全..
1)仅使用httponly cookie使用会话ID,并通过url ..
禁用会话ID2)将session_save_path设置为公共索引之外的新位置。如果您在共享主机上他们不能使用会话注入来查看会话中的内容。 更好..使用数据库作为会话处理程序..
3)禁用你的网络服务器的http方法TRACE,TRACK,HEADER,如果攻击者可以包含一些java,flash或者ajax,用户的http cookie也可以被盗。4)关于IP使用者或某种指纹的锁定会话......
5)更新所有请求的session_id,使make session id暴力更加困难