2015-04-26 41 views
1

我只是想知道,对于一个PHP会话,是否会优先存储包含登录用户的ID或用户名的会话变量?PHP - 存储会话用户名或ID首选?

目前它存储的用户名,而ID会更安全,因为潜在的“黑客”,他们可能不知道该ID相关的用户?

+1

看起来像一个ID会是更聪明的选择,但不是因为它更安全,而是因为它很可能是数据库中的主键。 – Devon

+0

@Devon这也是我的想法。我一直在使用用户名,但最近我发现ID更容易使用。 – zuc0001

+1

从“黑客”角度来看,这没有什么区别。如果黑客试图模仿另一个用户,他将使用用户名,如果你的会话存储用户名和id,如果你的会话使用ID。 – nhee

回答

2

PHP会话通过给用户提供一个“不透明”的cookie来工作 - 也就是说,cookie只是一个数字,实际的数据存储在服务器上。当用户向您发送会话cookie时,PHP将查找表中的数字以检索您为该用户存储的数据。

这意味着如果没有访问您的服务器,任何听网络的人都可能弄清楚会话cookie的实际含义是不可能的。他们需要存储在服务器上的表格。因此,如果您在会话中存储身份证号码或用户名,则无关紧要:如果他们有足够的权限查看会话中的内容,那么他​​们可能只是根据身份证号码查找用户名。

+0

感谢您的洞察力。很有帮助 :-) – zuc0001