iframe是非SSL站点上的SSL安全表单

iframe是非SSL站点上的SSL安全表单,ssl,iframe,Ssl,Iframe,我收到一位客户的请求,他希望他们现有的一份表格出现在另一个网站上 他们希望在iframe中提供付款表格 当涉及到支付处理时,如果将SSL网站转换为非SSL网站,会有什么(如果有的话)影响?您的用户浏览器会向他们发出安全警告,基本上说这是一种不安全的情况。例如,中间人攻击可能会将javascript注入非SSL页面,现在您可能会受到威胁 在这种情况下,弹出式或平铺式页面重定向是执行此操作的适当方式。您可能很清楚,在这种情况下,您希望浏览器中100%的内容通过SSL托管。否则,您就不能保证得到保护。

我收到一位客户的请求,他希望他们现有的一份表格出现在另一个网站上

他们希望在iframe中提供付款表格


当涉及到支付处理时,如果将SSL网站转换为非SSL网站,会有什么(如果有的话)影响?

您的用户浏览器会向他们发出安全警告,基本上说这是一种不安全的情况。例如,中间人攻击可能会将javascript注入非SSL页面,现在您可能会受到威胁


在这种情况下,弹出式或平铺式页面重定向是执行此操作的适当方式。您可能很清楚,在这种情况下,您希望浏览器中100%的内容通过SSL托管。否则,您就不能保证得到保护。这就是这些警告的原因。

现代web浏览器不会发出任何安全警告,因为父窗口在HTTP上不安全地运行。但缺点是,由于安全内容位于子窗口(iframe)内,因此您的web浏览器不会在地址栏中显示安全锁定图标,因此您的用户可能会因为担心表单不安全而回避

中间人攻击不太可能发生,因为所有web浏览器(经典和现代浏览器)都拒绝通过Javascript访问iframe内容,因为iframe使用的是不同的协议和/或域名。此时与iframe通信的唯一方法是通过现代web浏览器中实现的postMessage函数,该函数允许通过Javascript进行跨域通信。即使您正在使用postMessage,iframe也需要包含侦听来自父窗口的postMessage事件的代码,在iframe中开发付款表单的情况下,只有父窗口需要在处理付款后侦听事件。因此,如果您通过postMessage片面地保持通信(iframe仅执行postMessage,而parent侦听消息),则中间人攻击极不可能发生


当然,任何人都可以覆盖事件侦听器并在父窗口上执行代码,从而诱使服务器相信已处理了付款。此时,您需要在服务器端代码中采取预防措施,以确保事务确实合法发生。在我的例子中,我的付款表单(iframe)在数据库中创建一个临时密钥,并通过postMessage将该密钥发送到父窗口。然后,父窗口向服务器发出一个AJAX调用,检查数据库以查看键是否匹配,并在创建一个记录之前快速删除该键,该记录表明确实发生了事务。

@Kevin:欢迎使用StackOverflow:)下面是一个相关问题,可能需要考虑以下几点:这就是我的想法。我刚刚被告知,我们也可以用SSL保护第二个站点。这将使我们摆脱不安全的内容警告。谢谢