限制 Web 应用程序可以嵌入 iframe 的网站的最佳(最安全)方法是什么?
例如,所有不在名单上的人都应该被拒绝:
- www.myFriend.com
- www.anotherfriend.com
- www.myThirdFriend.com
作为后续问题,考虑到上述任何限制,找出服务器端哪个白名单站点正在执行嵌入的最安全方法是什么?
CSP:新方法
This is 现代浏览器的良好支持 https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/frame-ancestors#browser_compatibility.
Add a 内容安全政策 https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP with a frame-ancestors指示 https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/frame-ancestors
Content-Security-Policy: frame-ancestors 'self' https://www.example.org;
此处必须使用 HTTP 版本的 CSP。frame-ancestors
不支持<meta>
标签版本。
X-Frame-Options:旧方法
这有更好的浏览器支持 https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options#browser_compatibility因为它已经存在了更长时间,但现在差异并不显着。如果唯一可以看到您的网站的浏览器是 Internet Explorer,那么人们就不会费心去构建您的网站。
Use the X-Frame-OptionsHTTP 标头 https://developer.mozilla.org/en-US/docs/HTTP/X-Frame-Options.
X-Frame-Options ALLOW-FROM http://example.com/
另请参阅MSDN 文档 http://blogs.msdn.com/b/ieinternals/archive/2010/03/30/combating-clickjacking-with-x-frame-options.aspx其中有这样的建议:
请注意,Allow-From 令牌不支持通配符或列表
具有多重起源。对于服务器希望允许更多的情况
不是一页来框架其内容,以下设计模式是
受到推崇的:
- 外部 IFRAME 使用
内部 IFRAME 的 src 属性上的 querystring 参数。这个可以
显然是由攻击者指定的,但这没关系。
- 服务器为
内部 IFRAME 验证提供的 Origin 信息是否满足
无论商业实践需要什么标准。例如,服务器
为包含社交网络“喜欢”按钮的 IFRAME 提供服务,
可能会检查提供的 Origin 是否与 Origin 匹配
预期该“赞”按钮,以及指定的所有者
Origin 具有有效的附属关系等。
- 如果满意
提供的信息,内部 IFRAME 的服务器发送一个
X-FRAME-OPTIONS:允许来自提供的源标头
- 然后浏览器
强制执行 X-FRAME-OPTIONS 指令。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)