Jef*_*f86 1 php mysql security shopping-cart yii
工作环境:PHP5面向对象,MVC模式,Yii框架
购物车:每种产品的数量和价格列表.运输车的作用只是将产品放入其中,如果用户想要购买物品,则:
购物车手柄:
购物车不处理:
问题是:如何设计它是高效和安全的?
创建一个sql表并存储:
在mysql上创建一个事件,删除日期时间> 30分钟的每一行.
然后,为了获得购物车,您可以使用当前会话ID从表中获取所有项目,并创建一个foreach()来获取所有项目.
将所有购物车信息保存在cookie中
在我看来,选项1比选项2更安全但消耗更多的资源并且可能使SQL数据库暴露于攻击(创建溢出数据库的大量新会话).选项2暴露于cookie注入,但需要较少的资源并向用户公开信息.
还有其他/更好的方法吗?
为什么不简单地分配一个$_SESSION["shoppingCart"]
包含quantity
和item_id
?的数组?例如:
$_SESSION["shoppingCart"] = array(
$item_id => $quantity
);
Run Code Online (Sandbox Code Playgroud)
然后,在处理购物车时,调用一个方法,根据存储的数据从数据库中收集所有需要的数据 item_id
.然后,您可以继续计算实际的购物车价格.
这样,当$_SESSION
过期时,您不必触发数据库中的任何事件.如果要保存$_SESSION
,也可以将其保存在数据库中.