2011-08-12 47 views
0

我已经为在线购物车网站创建了一个表单,客户将产品添加到了他的包中,并在该页面中检查填写客户信息。测试人员使用一些篡改技术并能够更改他们说的数据验证,以MD5安全散列前的产品,他们能够为我们使用实时数据篡改的价格形式如何,如果需要的代码会为你的答案提供我想创建一个无法操作的表格

非常感谢 瓦苏

解决这个问题
+0

假设客户已将购物车物品保留一周,同时价格已上涨。可以失去差异吗? –

回答

5

并且能够在验证数据之前更改产品的价格

的解决方案是采取只从形式订购的产品数量,并在内部做的价格计算,在服务器端。如有必要,每次购物车更新。

在客户端计算的任何东西永远不值得信赖。

当你在它的时候,确保你没有遇到下一个错误的机会:确保用户在指定项目数量时不能输入分数,如0.1 - 导致10%的原价。 :)

+1

或负数。说他们订购-1欧元的苹果,你不想支付他们;) – TJHeuvel

+0

@TJHeuvel哦,男孩,是啊!这也很有趣 - 尤其是如果自动连接到PayPal账户:) –

+1

从现在开始,我将尝试在每个网上商店订购0.51件商品:)在任何四舍五入之前,他们总是有机会计算价格; P – Mchl

1

提交表单时,计算购物篮中商品的价格并将其与浏览器提交的价格进行比较。

如果不同,请询问用户确认实际价格。

+0

客户为什么要负责提供合适的价格。这是网站本身,应该决定。 –

+0

@ElGabbu要求用户确认实际价格没有任何不妥。例如,在用户访问期间数据库中的价格可能已经改变。 –

+0

如果您向用户显示价格,并且出现问题(这种情况不太可能,攻击更可能),然后要求他们确认实际价格会更安全(从法律角度而言),然后以不同的价格为他们开票。 – Quentin

0

同意Pekka。价格本身不应该是形式的一部分。唯一应该提交的是数量有序的链接到product_id。价格计算应在表单提交后在服务器上完成。

2

结帐时,根据有效/四舍五入的数量重新计算服务器端的所有价格。在继续对付款工具收费之前,向用户显示一个不可编辑的确认页面。如果用户不同意确认,他可以回到购物车并进行更改。

相关问题