Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 我想创建一个不能被操纵的表单_Php_Forms - Fatal编程技术网

Php 我想创建一个不能被操纵的表单

Php 我想创建一个不能被操纵的表单,php,forms,Php,Forms,我已经为在线购物车网站创建了表单,客户将产品添加到他的包中,并检查在该页面中填写客户信息。测试人员使用了一些篡改技术,能够在将数据验证到MD5安全哈希之前更改产品的价格。他们说他们能够像我们使用live一样篡改价格如果需要代码,将提供如何解决此问题的数据表 非常感谢你的回答 瓦苏 并且能够在验证数据之前更改产品的价格 解决方案是只获取表单中订购的产品数量,并在服务器端内部进行价格计算。如有必要,每次更新购物车时 任何在客户端计算的东西都是不可信的 在这样做的同时,确保不会在途中遇到下一个bug机

我已经为在线购物车网站创建了表单,客户将产品添加到他的包中,并检查在该页面中填写客户信息。测试人员使用了一些篡改技术,能够在将数据验证到MD5安全哈希之前更改产品的价格。他们说他们能够像我们使用live一样篡改价格如果需要代码,将提供如何解决此问题的数据表

非常感谢你的回答 瓦苏

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

解决方案是只获取表单中订购的产品数量,并在服务器端内部进行价格计算。如有必要,每次更新购物车时

任何在客户端计算的东西都是不可信的


在这样做的同时,确保不会在途中遇到下一个bug机会:确保用户在指定项目数量时不能输入分数,例如0.1-导致原价的10%:

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


如果它们不同,请用户确认实际价格。

与Pekka达成一致。价格本身不应成为形式的一部分。唯一应该提交的是指向产品id的订购数量链接。提交表单后,应在服务器上进行价格计算。

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

或负数。假设他们点了一个10欧元的苹果,你不想付钱给他们@哦,天哪,耶!这也会很有趣——特别是如果自动连接到PayPal帐户:从现在起,我将尝试在每个网上商店订购0.51件商品:他们总是有机会在任何舍入发生之前计算价格;请告诉我,顾客已经把购物车的物品保管了一周,同时,价格也上涨了。失去差价可以吗?为什么客户要负责给出正确的价格。是网站本身决定的。@ElGabbu请用户确认真实价格没有什么错。例如,在用户访问期间,数据库中的价格可能发生了变化。如果您向用户显示价格,并且出现了一些不太可能发生的错误,则更可能发生攻击,然后要求他们确认实际价格,从法律上讲,这比向他们支付不同的价格安全得多。