【问题标题】:using paypals html api is safe?使用 paypals html api 是否安全?
【发布时间】:2010-04-01 10:43:18
【问题描述】:

我正在尝试 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>

当用户点击提交时,它会将他/她带到贝宝付款页面。

但这不是说黑客可以通过操纵html代码来改变顺序吗?

我不知道 paypal 是如何防止这个安全问题的。

【问题讨论】:

  • 我知道有几个供应商这样做。在这种情况下,我认为通常由您在发货前检查是否结清了正确的金额。

标签: api paypal


【解决方案1】:

当然,看起来好像有人可以更改 HTML 并重新提交表单。

我不确定 PayPal,但 Google Checkout 处理此问题的方法不是设置 HTML,而是让您创建 XML,使用您的商家密钥对其进行加密,并使用您的 HTML 中的加密字符串传递给 Google。然后,Google 会使用您的商家密钥对其进行解密,然后瞧——不可篡改。

查看 PayPal 的文档,了解“购物车签名”或“请求加密”等内容。他们还可能会回调您的服务器,告诉您发送了什么,您可以将其与您的数据库进行比较,以查看价格是否仍然正确。

【讨论】:

    【解决方案2】:

    如果这与其他 html 集成类似,则应该有一个直接从 Paypal 到您的服务器的回调,其中包含输入的所有字段。您可以比较这些以查看是否有任何变化。通常有各种安全机制,例如共享隐藏密钥,以便您可以验证回调是否真实。

    【讨论】:

      【解决方案3】:

      它本身似乎并不安全。在 Paypal 的Securing Your Website Payments Standard Buttons 页面上,他们谈到能够创建受保护的支付按钮。然而,他们进一步指出,如果禁用 Javascript,它就不起作用,这使得保护无用!然后他们讨论了可以执行的其他手动过程,包括对账和即时通知,无论如何都应该在任何健全的会计过程中发生。

      Encrypted website payments 对我来说确实是唯一安全的选择。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-01-02
        • 1970-01-01
        • 1970-01-01
        • 2012-02-22
        • 2016-05-12
        • 2011-11-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多