JavaScript中的安全表单


Securing form in JavaScript

在传递给支付处理器之前处理表单字段的最佳方法是什么?例如,假设我有一个表单,它有一个隐藏的价格字段,这是将传递给PayPal的值,在这种情况下,用户可以很容易地使用firebug更改值并将任何值传递给PayPal。我通常通过值从数据库到PayPal使用PHP,但我只是急于知道有什么其他方法可以处理这个。

约瑟夫

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

我总是从服务器端传递这样的输入。

现在的一种方法是有一个"校验和"隐藏字段在您的表单中存储哈希值的金额(连同一个秘密的"密钥"),这是张贴到并由您的服务器验证。或者,在您的表单发布后,简单地验证服务器上的各个字段,并进一步将用户重定向到PayPal(以及POST参数)。

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

另外,针对你的问题(Paypal支付标准按钮),贝宝给出了一些很好的建议:https://developer.paypal.com/docs/classic/paypal-payments-standard/integration-guide/encryptedwebpayments/