我正在试用 paypals html api,您可以在 html 中指定价格、商品名称、客户信息等:
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" id="payPalForm">
<input type="hidden" name="cmd" value="_cart" />
<input type="hidden" name="upload" value="1" />
<input type="hidden" name="no_note" value="1" />
<input type="hidden" name="business" value="your@paypalaccount.com" />
<input type="hidden" name="currency_code" value="SEK" />
<input type="hidden" name="return" value="http://freelanceswitch.com/payment-complete/" />
<input type="hidden" name="tax_rate" value="25" />
<input type="hidden" name="item_name_1" value="Apple Macpro" />
<input type="hidden" name="item_number_1" value="01 - Product 1" />
<input type="hidden" name="amount_1" value="25000" />
<input type="hidden" name="item_name_2" value="Apple Macbook" />
<input type="hidden" name="item_number_2" value="02 - Product 2" />
<input type="hidden" name="amount_2" value="12500" />
<input type="hidden" name="item_name_3" value="Apple Macbook Air" />
<input type="hidden" name="item_number_3" value="03 - Product 3" />
<input type="hidden" name="amount_3" value="12500" />
<input type="submit" name="Submit" value="Submit" />
</form>
当用户点击提交时,他/她将转到 Paypal 支付页面。
但这是否意味着黑客可以通过操纵 html 代码来更改顺序?
我不明白 paypal 是如何防止这个安全问题的。
最佳答案
当然,看起来确实有人可以更改 HTML 并重新提交表单。
我不确定 PayPal,但 Google Checkout 处理此问题的方式不是设置 HTML,而是让您创建 XML,使用商家 key 对其进行加密,然后使用 HTML 中的加密字符串传递给 Google。然后,Google 使用您的商家 key 对其进行解密,瞧 - 不可篡改。
查看 PayPal 的文档,了解“购物车签名”或“请求加密”等内容。他们也可能会回调您的服务器,告诉您发送了什么,您可以将其与您的数据库进行比较,看看价格是否仍然正确。
关于api - 使用 paypals html api 安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2559763/