我正在编写一个项目,在注册后我会在id
中保存每个客户的session
。
据我所知,session
在服务器端存储数据,因此它似乎是安全的。但是我已经多次看到会话变量以散列形式存储。
那么,他们为什么要这样做?
非常感谢
答案 0 :(得分:2)
在大多数情况下,$ _SESSION的内容是安全的。我看了很多应用程序,我没有看到这种哈希任意数据的做法。有时会存储像CSRF令牌这样的值,这些值通常是哈希值。 PHP使用哈希函数生成会话ID(cookie值),但这只是一个随机数。攻击者可能访问通常存储在/ tmp /中的会话文件。这可以使用MySQL注释使用MySQL的load_file()
或使用目录遍历来完成。有时可以在共享托管环境中访问其他用户的会话信息。大多数开发人员不会考虑这种攻击。
答案 1 :(得分:2)
使用哈希并不总是与安全性相关。散列的一个最初用途是为文件创建一个准唯一的指纹,这样你就可以确保它真的是你想拥有的文件。如果你想在会话中存储一大块数据,但只需要与之进行比较,永远不知道确切的内容,散列可以节省硬盘空间和执行比较操作的时间。