加密会话变量有什么安全性好处吗?

时间:2012-02-06 13:55:40

标签: php security encryption cryptography

会阻止例如会话劫持吗?如果没有,我该怎么做才能使我的php会话安全?

2 个答案:

答案 0 :(得分:14)

发送给客户端的是会话标识符,而不是会话变量。这些会话标识符通常设置为客户端中的cookie。当然,如果有人从用户的浏览器或客户端获取会话标识符(例如,通过使用跨站点脚本攻击),他可以在自己的客户端中设置会话标识符并模拟为其他用户。

然而,会话变量通常是指$_SESSION数组中的值。有关示例,请参阅http://www.php.net/manual/en/function.session-start.php。这些值永远不会通过网络发送到客户端。

就保护会话标识符而言,我已经在第一段中解释过它们在浏览器中存储为cookie。在HTTP会话中,cookie以明文形式在服务器和客户端之间传输。这很容易被窃听(例如,路由器上的数据包通过它可以捕获您的数据包并从中读取会话标识符)。解决此问题的最佳方法是使用HTTPS。

答案 1 :(得分:0)

我想这取决于你的“安全利益”是什么意思。如果您的应用程序位于共享主机上,并且您的会话数据保存在某个不安全的中心位置,可供其他用户阅读,那么,从技术上讲,加密会带来一些安全优势你的课程。但是,简单地write your own session storage mechanism可以更好地利用您的时间和精力,这样您就不会将它们存放在不安全的位置;特别是考虑到加密完全错误是多么容易,并给自己一种虚假的安全感。