我有一个客户要求,希望他们现有的一个表格出现在另一个网站上.
他们希望在iframe中显示付款表单.
当涉及支付处理时,如果在SSL网站中将SSL写入非SSL网站,会有什么影响?
现代Web浏览器不会提供任何安全警告,因为父窗口在HTTP上运行不安全.但是,由于安全内容位于子窗口(iframe)中,因此您的Web浏览器不会在地址栏中显示安全锁定图标,因此您的用户可能会害怕表单可能不安全.
由于iframe使用不同的协议和/或域名,因此所有Web浏览器(经典和现代)都拒绝通过Javascript访问iframe内容,因此不太可能发生中间人攻击.此时与iframe进行通信的唯一方法是通过现代Web浏览器中实现的postMessage函数,该函数允许通过Javascript进行跨域通信.即使您使用的是postMessage,iframe也需要包含侦听来自父窗口的postMessage事件的代码,在iframe中开发支付表单的情况下,只有父窗口才需要监听事件.付款已处理完毕.因此,如果通过postMessage单方面保持通信(iframe仅执行postMessage,父级侦听消息),则不太可能发生中间人攻击.
当然,任何人都可以覆盖事件监听器并在父窗口上执行代码,诱使服务器相信付款已被处理.那时您将需要在服务器端代码中采取预防措施,以检查确保事务确实合法发生.在我的情况下,我的付款表单(iframe)在数据库中创建一个临时密钥,并通过postMessage将该密钥发送到父窗口.然后,父窗口对服务器进行AJAX调用,检查数据库以查看密钥是否匹配,并在创建事务确实发生的记录之前快速删除密钥.
您的用户的浏览器会给他们安全警告,基本上说这是一个不安全的情况.例如,中间人攻击可能会将javascript注入您的非SSL页面,现在您可能会受到攻击.
在这种情况下,弹出窗口或平面页面重定向是执行此操作的适当方法.您可能清楚地意识到,在这种情况下,您希望浏览器中的100%内容都通过SSL托管.否则,您无法保证受到保护.这就是那些警告的原因.
| 归档时间: |
|
| 查看次数: |
8781 次 |
| 最近记录: |