【发布时间】:2010-10-27 14:10:18
【问题描述】:
我在我编写的应用程序中使用(服务器端,而不是 cookie)会话,如果用户没有获得对服务器的访问权限,我可以信任 $_SESSION 变量还是应该在每个页面加载时验证它的内容?
注意:
我正在尝试限制对我的数据库的查询数量,目前我正在验证每个页面加载时的数据,我认为我可能可以消除查询,但我想 100% 确定。
【问题讨论】:
我在我编写的应用程序中使用(服务器端,而不是 cookie)会话,如果用户没有获得对服务器的访问权限,我可以信任 $_SESSION 变量还是应该在每个页面加载时验证它的内容?
注意:
我正在尝试限制对我的数据库的查询数量,目前我正在验证每个页面加载时的数据,我认为我可能可以消除查询,但我想 100% 确定。
【问题讨论】:
是的,您可以将其安全地存储在会话中。您应该确保 Validation 方法是安全的。 (存储在会话中之前使用的方法)。
【讨论】:
您只需要确保会话存储在安全的地方。默认情况下,会话存储在 Linux 上的 /tmp/ 之类的地方。如果用户可以访问您的服务器,他们可以编辑会话变量。
您应该考虑将会话保存到数据库,和/或向会话添加哈希计算(md5+秘密种子)验证,并始终检查会话变量是否未针对该哈希进行修改。
【讨论】: