【发布时间】:2023-04-01 05:12:01
【问题描述】:
在 PHP 中在页面之间存储数据的最佳方式是什么?我会认为会话工作得很好,甚至对象会话 (https://stackoverflow.com/a/5515341/1445985) 但是假设我正在构建一个购物车,PHP 会话真的那么容易被破解,以至于不建议在其中存储购物车/购物篮数据吗?无论如何,谁在乎是否有人确实设法获得了其他人的篮子数据,这肯定不会造成任何伤害?显然信用卡数据等是有害的,但订单中的不同产品列表根本不用担心。
我看到我目前使用的购物车(我没有做到)将每个订单存储到数据库中的表中,然后只需通过订单 ID 查询表以检索所有订单信息。这是可取的吗?
我一直在努力寻找用 PHP 做事的最佳方法,但问题是似乎从来没有一种值得信赖的方法来做任何事情。总有人说这是个坏主意。
【问题讨论】:
-
“PHP 会话真的那么容易被破解吗”——是什么让你认为它们是这样的?
-
@Quentin 有人在我刚刚阅读但现在找不到的另一个 stackoverflow 问题中提到了它:S
-
会话不会在当前浏览器会话之后持续存在,如果您希望购物车在两次访问之间持续存在,您需要使用数据库。
-
@datasage 停止传播该 FUD。如果您以这种方式进行设置,会话可以永远持续下去。这并不是说这是一个好主意,只是会话不必须在“当前浏览器会话”之后过期。
-
我用户的经验法则是,我从不在会话中存储安全数据,因为就像您说的那样,它们可能会被黑客入侵或被盗。因此,如果您只是使用它们来存储用户单击的项目,我真的看不出有任何损害。比查询数据库要快。