【发布时间】:2011-01-16 23:05:59
【问题描述】:
我正在创建一个多步骤调查,并希望在将所有内容写入数据库之前将数据存储在 $_SESSION 中。从安全角度来看,在将数据存储在那里之前,我应该对数据做些什么吗?
【问题讨论】:
我正在创建一个多步骤调查,并希望在将所有内容写入数据库之前将数据存储在 $_SESSION 中。从安全角度来看,在将数据存储在那里之前,我应该对数据做些什么吗?
【问题讨论】:
假设您正在进行基于文件的常规会话,那么从注入漏洞的角度来看,您不必担心太多。 PHP 将使用serialize() 等处理读取/写入会话文件的机制。将您想要的任何内容放入 $_SESSION 中,它会神奇地出现在下一页调用中。
但是,从更广泛的安全角度来看,进入会话文件的任何内容都可以被在同一 Web 服务器实例下运行的任何其他内容(例如 apache 用户 ID)读取。所以它不是您可以存储敏感数据的地方,更不用说诸如信用卡/cvv 号码之类的东西了。
【讨论】:
好吧,为了避免恢复数据出现问题,我建议您为会话使用一个名称,并使用一个专门用于发布数据的数组,有点:
$_SESSION['postData'] = $_POST;
【讨论】:
在会话中扔任何你想要的东西而不对其进行消毒是相当安全的。不过你可以,因为无论如何你都要去,所以在将它放入会话之前对其进行消毒,以便它准备好进入数据库,然后你可以睡得更香。
【讨论】: