2010-08-31 51 views
2

我正在写一个项目,在注册后我保存每个客户的idsession。 据我所知,session存储在服务器端的数据,所以它似乎是安全的。但是当会话变量以散列形式存储时,我多次见过。为什么人们以散列形式保存会话数据?

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

非常感谢

回答

2

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

+0

啊,这是他们唯一合理的载体 - 但我还没有看到的情况下,即使是在共享主机,所有的网站将使用'/ tmp' - 大部分的时间,他们得到自己的临时空间某处其他。 – Piskvor 2010-09-13 08:36:43

2

使用散列函数并不总是与安全相关的。哈希的最初用途之一是为文件创建一个准独特的指纹,以便确保它真的是您想要的文件。如果您想在会话中存储大量数据,但稍后只需与其进行比较,则永远不会知道确切的内容,散列可能会节省硬盘驱动器空间并执行比较操作。

相关问题