使用 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 中使用 window.parent.myFunction 是不是安全?