是否有必要从具有https或http足够安全的网页提供paypal托管按钮?

时间:2015-02-21 17:00:27

标签: security paypal https hosted

我在我的网站上执行了“网络漏洞扫描”。 (来自这家公司http://www.acunetix.com/)并且存在一些中级威胁。所以这是我想问的问题。

..............................

提醒:

在表单帖子中从HTTP到HTTPS的不安全转换。

说明

此表单由不安全页面(http)页面提供。此页面可能会使用中间人攻击进行劫持 并且攻击者可以替换表单目标。

影响:

可能的信息披露。

....................................

我知道SSL应该真正用于用户输入敏感信息的任何页面,例如信用卡详细信息。然而,在这种威胁所指的形式中,我使用的是PayPal托管按钮直接进入贝宝。表单中没有传递敏感数据,只有价格和商品名称。在这种情况下,这是一种威胁吗?是否有必要在页面上使用托管按钮进行https?这是托管按钮的表单。非常感谢任何建议,莎拉

<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post" target="_top">
        <input type="hidden" name="cmd" value="_s-xclick">
        <input type="hidden" name="hosted_button_id" value="YK6RA88XCE69G">
        <table>
        <tr><td>
        <input type="hidden" name="on0" value="Ableton Course Fees"></td></tr>
        <tr><td>
        <select name="os0">
            <option value="Full Payment">Full Payment &euro;275.00 EUR</option>
            <option value="Deposit Payment">Deposit Payment &euro;100.00 EUR</option>
        </select>
        </td></tr>
        </table>
    <input type='hidden' name='cancel_return' value='http://www.funkdafone.com/finalne4/cancelled.php'>
    <input type='hidden' name='return' value='http://www.funkdafone.com/finalne4/confirmation.php'>

    <input type="hidden" name="currency_code" value="EUR">
    <input type="image" src="https://www.sandbox.paypal.com/en_US/GB/i/btn/btn_buynowCC_LG.gif" border="0" name="submit" alt="PayPal – The safer, easier way to pay online.">
    <img alt="" border="0" src="https://www.sandbox.paypal.com/en_GB/i/scr/pixel.gif" width="1" height="1">
</form>

2 个答案:

答案 0 :(得分:1)

基本上,当您使用PayPal Hosted按钮时,您不需要真正担心Https或http。最终,加密信息将传递给https://www.paypal.com

  • 因此,由于结帐页面由PayPal托管,因此您已经安全并且也遵守了PCI合规性。

  • 如果您使用自己的结帐页面(例如,Dodirectpayment您收集买方信用卡信息),则需要符合PCI标准,建议使用SSL(https)以提高安全性

答案 1 :(得分:1)

是的,理想情况下,您应该确保整个网站在重定向到PayPal之前使用HTTPS。但是,这可能会带来额外的性能挑战,因为站点范围的SSL(即HTTPS)会略微增加CPU负载:According to Google, +1% CPU and +2% network bandwidth

为什么我应该在所有地方使用HTTPS?

假设您的网站是通过普通HTTP加载的,用户可以通过以下网址访问结帐:

http://example.com/checkout.php

这包含您将上述代码重定向到PayPal的上述代码:

<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post" target="_top">

现在,如果用户的网络上有攻击者(说用户和攻击者都在那里使用无线网络的咖啡店),攻击者可以使用sslstrip之类的工具来{{3}用户与您网站的连接。这将在呈现给用户时动态地将页面的表单更改为纯HTTP:

<form action="http://www.sandbox.paypal.com/cgi-bin/webscr" method="post" target="_top">

现在,当用户点击进入Pay​​Pal时,连接再次被MITM攻击,允许攻击者拦截密码,信用卡和地址详细信息。所以而不是连接:

User --> Coffee Shop Router --> PayPal

它将是

User --> MITM Attacker --> Coffee Shop Router --> PayPal

当然,用户可能注意到他们与PayPal的连接不是HTTPS(他们的浏览器会在没有挂锁的地址栏中显示http://www.sandbox.paypal.com),但他们可能没有 - 带来后果。这就是为什么您不应该通过普通HTTP将页面重定向到支付网站 - 以保护您的用户。使用您网站上的SSL,用户可以在结帐阶段信任您的网站(因为它将通过HTTPS提供,挂锁将位于地址栏中),并且能够安全地跟踪结账流程到PayPal。

在你的情况下

话虽如此,由于您没有在从您的网站向PayPal发出的表单请求中发送任何机密信息,因此用户在输入任何详细信息之前很可能会注意到他们不在PayPal的安全版本上。如果您的表单包含的信息是,如果攻击者可以通过他们的sslstrip攻击立即拦截,那么您的网站将面临更大的风险。

总之,看起来您可以接受风险,因为它很低。如果它在您的手段范围内,我会建议站点范围内的HTTPS。无论哪种方式,始终鼓励用户在输入PayPal登录信息或其卡详细信息之前检查地址栏和挂锁。在这种情况下,当从不同位置访问您的网站时,重复客户更有可能发现他们的连接是否为MITM。

相关问题