Jef*_*eff 5 embed iframe embedding cross-domain
我们为客户提供第三方网站.通常,当我们处理RFP时,我们会被问到是否可以将我们的网站嵌入客户的网站.我们的许多潜在客户都有不寻常的限制或要求,例如"不要使用iframe".
为此,我被要求确保我们即将对我们的网站进行重新设计,这使得以至少两种方式嵌入客户网站变得切实可行.
在另一个网站中嵌入功能齐全的网站(与跨站点图像或静态内容相对)的方法如下:
iframe - 大量使用,经常受到诽谤,我们以前的一些RFP特别排除了这种可能性.
对象/嵌入标签 - 回过头来,可以像嵌入flash对象一样将完整功能的HTML页面嵌入到另一个页面中.
Ajax - 据说能够将完整站点加载到HTML对象(例如div标记)中,但由于跨域请求的危险,似乎还有其他安全问题需要跳过.
是否有其他方法可以将完整网站放在另一个域中?上面三个中的任何一个都有任何警告或限制(例如,我们的网站使用AJAX调用登录并更新一些用户定义的设置,这些都将在上述每个嵌入策略中正确运行吗?)我可能是不知道?
提前致谢.
X-Frame-Options响应头如果您将自己的网站嵌入到其他人的网站中,则必须小心X-Frame-Options响应标头。确保您的网站不会SAMEORIGIN作为 的值发送X-Frame-Options。如果这样做,将会导致iframe 和嵌入对象出现问题。你可以做两件事:
您绝对不要发送标头:任何站点都可以在 iframe 中或作为嵌入对象显示您的站点。这可能会导致点击劫持等安全问题。有关点击劫持的更多信息和防御,请参阅本文。
您可以确保只有您授权的网站才能嵌入您的网站:这是通过发送标头ALLOW-FROM url值来完成的X-Frame-Options。您可以嗅探HTTP-referer来识别哪个站点正在请求您的页面。这比选项 1 确实安全(当然,除非用户的浏览器是恶意的)。注意:并非所有浏览器都支持ALLOW_FROM. 请参阅支持的浏览器的链接参考
只要您的站点和您的客户端站点不访问彼此的 DOM,同源策略就不会影响您。
XmlHttpRequest如果您客户网站上的脚本向您网站中的资源发出 AJAX 请求 ( ),则应考虑跨源资源共享。但就你的问题而言,我认为事实并非如此。
我前段时间给出了一个解释CORS的答案,如果你想对CORS有一个基本的了解,可以阅读它。
您似乎正在尝试在客户端站点中嵌入一些功能。考虑提供像Facebook和Disqus那样的网站插件。
我不确定同源政策或 CORS 是否适用于此。我会找出答案并回复您。
注意: X-Frame-Options、同源策略和 CORS 是由浏览器实现的。如果用户浏览器没有实现这些功能,或者浏览器被黑客攻击而不遵守这些安全策略,您将无能为力。
| 归档时间: |
|
| 查看次数: |
1547 次 |
| 最近记录: |