将客户邮寄地址存储在cookie中是一种好习惯吗?

时间:2011-11-20 17:57:42

标签: php session cookies

我正在创建一个使用访客结帐方式(无客户帐户)的电子商务页面。结账过程的一部分将获得客户的电子邮件地址,电话号码,账单地址和收件地址。我试图避免使用会话变量。

我理解Cookie不应存储敏感信息,我理解为什么......但是,将客户的结算和送货地址存储在Cookie中是不是一种好的或坏的做法?

如果有帮助,我正在使用PHP。

4 个答案:

答案 0 :(得分:4)

无需在cookie或会话中保留该信息。如果你想保留它并将密钥保存在session / hidden field / querystring中,那么只需将它存储在数据库中(可能不是最好的,因为它在地址栏中直接可见)。

Cookie会随着每个请求来回发送,因此要么不要过多地使用它们,也不要在其中添加太多信息。特别是当它包含可以拦截的敏感数据时。

首次评论后更新:如果您不想将数据保留在数据库中,那么您需要拥有一个后续扫描的触发器或流程。在ASP.NET中,在SQL Server中存储会话状态时,这是由每分钟运行一次的SQL代理作业完成的,并取出已放弃的会话。您没有指定您正在使用哪个数据库引擎,但肯定会有类似的东西。如果没有,那么您可以使用任务计划程序或cron作业来定期调用执行某些清理代码的页面。

答案 1 :(得分:1)

没有理由不加密cookie,你甚至可以完全摆脱php的会话并将所有内容存储在加密的cookie中。这样,会话变量不依赖于特定的服务器计算机。我能看到的唯一缺点是4KB限制。

答案 2 :(得分:0)

如果您只是将它从一个页面传递到另一个页面,请使用会话(甚至是隐藏的表单输入字段),没有理由使用cookie。如果您将它用于返回用户 - 为什么不将所有用户数据存储在数据库中呢?

答案 3 :(得分:0)

实际上,在关于会话存储的PHP数据中确切存在于cookie中(有一些加密),为什么你不想使用它呢?

相关问题