在JavaScript中保护表单

时间:2014-06-25 20:52:52

标签: php forms security

在传递给付款处理商之前,流程表格字段的最佳方式是什么? 例如,假设我有一个隐藏价格字段的表单,这是将传递给PayPal的值,在这种情况下,用户可以使用firebug轻松更改值并将任何值传递给paypal。 我通常使用PHP将数据库中的值传递给PayPal,但我只是想知道还有其他方法可以解决这个问题。

优素福

1 个答案:

答案 0 :(得分:0)

永远不要信任客户端输入。你可以使用Javascript或简单的HTML或任何东西,重点是,有足够的知识(和决心),用户可以并且将始终能够在客户端更改任何内容并发布它。

我总是从服务器端传递此类输入。

现在一种方法是拥有一个"校验和"表单中的隐藏字段,用于存储已散列的金额值(以及一个秘密的密钥'),该字段由您的服务器发布并验证。或者,只需在发布表单后验证服务器上的各个字段,并进一步将用户重定向到PayPal(以及POST参数)。

或者,另一种方式(相当耗时但防弹和行业标准"验证交易的有效性)是在交易完成后查看PayPal向您的服务器报告的内容(即通过PayPal Instant Payment Notifications获得的交易金额,然后在您的服务器上处理响应。

此外,特定于您的问题(Paypal付款标准按钮),这里有一些来自PayPal的好建议: https://developer.paypal.com/docs/classic/paypal-payments-standard/integration-guide/encryptedwebpayments/