为什么人们以散列形式保存会话数据?

时间:2010-08-31 18:50:28

标签: php security session

我正在编写一个项目,在注册后我会在id中保存每个客户的session。 据我所知,session在服务器端存储数据,因此它似乎是安全的。但是我已经多次看到会话变量以散列形式存储。

那么,他们为什么要这样做?

非常感谢

2 个答案:

答案 0 :(得分:2)

在大多数情况下,$ _SESSION的内容是安全的。我看了很多应用程序,我没有看到这种哈希任意数据的做法。有时会存储像CSRF令牌这样的值,这些值通常是哈希值。 PHP使用哈希函数生成会话ID(cookie值),但这只是一个随机数。攻击者可能访问通常存储在/ tmp /中的会话文件。这可以使用MySQL注释使用MySQL的load_file()或使用目录遍历来完成。有时可以在共享托管环境中访问其他用户的会话信息。大多数开发人员不会考虑这种攻击。

答案 1 :(得分:2)

使用哈希并不总是与安全性相关。散列的一个最初用途是为文件创建一个准唯一的指纹,这样你就可以确保它真的是你想拥有的文件。如果你想在会话中存储一大块数据,但只需要与之进行比较,永远不知道确切的内容,散列可以节省硬盘空间和执行比较操作的时间。