使用 iframe 付款是不是安全?

Posted

技术标签:

【中文标题】使用 iframe 付款是不是安全?【英文标题】:Is it safe use an iframe for a payment?使用 iframe 付款是否安全? 【发布时间】:2014-08-06 19:52:39 【问题描述】:

我有一个问题:使用 iframe 加载客户付款的页面是否安全。例如 paypal 或 DineroMail 或进行信用卡付款的页面。 因为我的老板希望客户感觉永远不会离开网站,所以我在我的网站中添加了一个 iframe(并在其中加载了付款的 url),但不知道是否正确和安全。

谢谢。

【问题讨论】:

遵循批准的贝宝集成指南。developer.paypal.com/docs/classic/products 【参考方案1】:

从技术安全的角度来看(同源策略),打开iframe 与打开新标签页一样安全。

从 UI 的角度来看,在某些位置打开 iframe 可能会欺骗用户,如果您不小心,您可能会被指控试图点击劫持用户进行无意付款。

我不能说 PayPal 自己的政策,但您应该确保他们同意。

【讨论】:

【参考方案2】:

如果 Paypal 允许这样做是安全的,但从 UI 的角度来看,您必须小心。

如果您的网站是通过http 加载的,并且您在您的网站中加载了 IFrame,那么即使 IFrame 是通过https 加载的,用户也会认为它并不安全。这种方法也容易受到MiTM attack 的攻击,因为攻击者可以拦截 IFrame URL 并将其更改为类似http://www.evil.com 的内容,并且在输入卡详细信息时没有人会更聪明。

如果您的网站通过 https 加载,您的客户必须信任您的信用卡详细信息,因为他们无法确定 IFrame 实际上指向的是 https (https://www.paypal.com) 上的 Paypal 域,而不是您的网站.是的,他们可以右键单击并检查源代码,但这对大多数用户来说太过分了,从技术上讲,一个邪恶的网站可以在客户没有注意到的情况下将 IFrame 换成一个邪恶的版本。

我的建议是实际重定向到https://www.paypal.com,因为它会显示在地址栏中并带有挂锁,并向用户保证他们将其详细信息提供给 Paypal 而不是其他人。

【讨论】:

感谢您的回答,但例如,如果我重定向到 paypal 或银行比重定向到网站内的 iframe 更难替换 url? @娜塔莉。不,您只需在付款完成后重定向回来。【参考方案3】:

我和很多客户都经历过几次。这在很大程度上与 1)他对客户离开他的网站感到不舒服,因为担心结帐不会发生,或者 2)他希望客户觉得所有服务都可以在网站上执行,这是一件值得骄傲的事情。

您的老板需要了解的一件事是,人们喜欢使用贝宝,因为他们值得信赖,而且这是他们熟悉的流程。他需要知道,人们不仅可以接受重定向到贝宝,而且他们也希望如此。如果我在哪里遇到他们在贝宝上的 iFrame 中检查我的网站,那对我来说将是一个危险信号。为什么?因为通过重定向我可以看到地址栏。我知道我在贝宝网站上,我可以查看它是否安全连接。

如果他对永远不会离开网站的客户死心塌地。他需要做类似paypal payments pro 的事情。这大概是他真正想要的解决方案。

编辑

我在上周末自己处理同样的问题时找到了你的答案,我想回来做一些更好的事情!

它被称为 flex,它是自适应支付经典 api 的一部分。这将需要额外的申请流程,您的老板可能会为此付费,这是非常值得的。

https://developer.paypal.com/docs/classic/adaptive-payments/integration-guide/APIntro/

往下走大约 3/4 处,您会看到分步说明,让您可以按照自己的要求进行操作。一个安全的贝宝 iframe。

快速提示:如果您必须将其合并到您自己的流程中,只需执行以下操作。

1) 将请求发送到贝宝后获取您的支付密钥。 2) 在教程中调用 javascript 源代码。 3)手动重定向窗口,而不是他们创建的贝宝按钮。又名https://www.paypal.com/webapps/adaptivepayment/flow/pay?paykey=YOURPAYKEY

另一个好的来源是:https://www.paypalobjects.com/webstatic/en_US/developer/docs/pdf/pp_adaptivepaymentsmobile.pdf

【讨论】:

很难让他们理解,但是很好,谢谢你的回答:) 你会喜欢我在上面找到的 :) 哇,谢谢。一有时间我会深入检查一下

以上是关于使用 iframe 付款是不是安全?的主要内容,如果未能解决你的问题,请参考以下文章

PayPal Checkout:仅使用客户端代码接收付款是不是安全?

iframe 中显示的嵌入式付款返回 url

在 iframe 中使用 window.parent.myFunction 是不是安全?

PayPal 自适应支付 - returnUrl 显示在 Lightbox IFrame 中

对 <iframe> 应用安全检查

很抱歉,我们现在无法完成您的付款。请稍后再试 - PayPal Payments Pro