鉴于iFrames 用于许多常见的漏洞利用,我想有条件地禁用 iFrames,除了需要它的网站,例如GMail或MasterCard SecureCode。
我还怀疑该<object>
标签具有相关功能。
- 有没有办法
<object>
在客户端有条件地阻止 iFrames(和/或)的使用,也许以类似的方式阻止弹出窗口的工作?
鉴于iFrames 用于许多常见的漏洞利用,我想有条件地禁用 iFrames,除了需要它的网站,例如GMail或MasterCard SecureCode。
我还怀疑该<object>
标签具有相关功能。
<object>
在客户端有条件地阻止 iFrames(和/或)的使用,也许以类似的方式阻止弹出窗口的工作?通常这会很困难,因为 iFrame 是 HTML 规范的一部分。万岁浏览器脚本!
一种解决方案是使用 FireFox 的greasemonkey 脚本或Chrome 中的嵌入式脚本。这是一个 Greasemonkey 脚本的链接,该脚本声称可以做你想做的事,还有更多。
http://userscripts.org/scripts/show/32192
您可能需要稍微调整它以获得确切的预期结果,但这应该会让您继续前进。
分享和享受。
在某些浏览器中,您可以禁用 iframe,然后将它们设置为在每个站点首选项中使用。我知道歌剧提供了这个功能。
从怪癖模式:
禁用 iframe
- IE9:Internet 选项 -> 安全 -> 自定义级别(适用于 Internet 区域)->(向下滚动)-> 在 IFRAME 中启动程序和文件 -> 设置为禁用。
- Firefox:转到 about:config -> 搜索“frames” -> 点击 browser.frames.enabled
- Opera:Ctrl+F12 -> 高级 -> 内容 -> 样式选项 -> 取消选中启用内联框架
此外,您可以在代理中创建一个规则,例如privoxy,以过滤掉所有 iframe,然后排除您希望拥有 iframe 的网站。我相信内置行为只做 iframe-adds,但可以调整。这会给你一个更全局的阻塞。你真的应该只需要一个正则表达式来找到开始标签并删除它直到它关闭,可能在某些情况下它会破坏页面。
编辑,看来歌剧实际上并没有禁用 iframe。我在上面的 quirksmode 链接上禁用了 iframe,它仍然注册了 iframe。这在Opera 论坛中得到了证实。我希望完整的 quirksmode 页面可能已经过时了。
在依赖用户脚本、浏览器功能等之前,在代理级别阻止可能是最好的结果。此外,更通用。
如果您只是希望不受包含指向漏洞利用工具包或漏洞利用页面链接的 iframe 的影响,那么您最好使用 NoScript for Firefox 或 NotScripts。它会执行您想要的那种有条件的阻止,它可以阻止几乎所有可能导致漏洞利用的东西(Javascript、Java、Flash、Silverlight 等)。如果加载了 iframe 但没有一种脚本可以运行,它是完全无害的。
我想说这也可能比仅仅阻止 iframe 更安全。如果您访问的站点碰巧被黑客入侵,那么攻击者没有理由不能执行<script src="http://evilsite.com"></script>
包含加载恶意 JAR 和恶意 SWF 的代码的操作。iframe 并不是唯一可以从外部域加载任意代码的东西。