而不是询问如何杀死帧。我有兴趣知道可以使用什么技术来防止页面内的iframe被“帧杀手”杀死
答案 0 :(得分:9)
不幸的是,由于他们的工作方式,总有一种方法可以获得圆形框架杀手。 (但正在框架的网站通常会显示警告)。
见杰夫阿特伍德的“disturbing revelation”。
一些选择摘录:
如果一个邪恶的网站决定它的进展 为了构建您的网站,您将成为 陷害。期间。框架破坏是 只不过是一种虚假的感觉 安全;它不起作用。
帧破坏代码(来自链接的Stack Overflow挑战):
<script type="text/javascript">
var prevent_bust = 0
window.onbeforeunload = function() { prevent_bust++ }
setInterval(function() {
if (prevent_bust > 0) {
prevent_bust -= 2
window.top.location = 'http://server-which-responds-with-204.com'
}
}, 1)
</script>
此代码执行以下操作:
每次增加一个计数器 浏览器尝试导航 从当前页面,通过 window.onbeforeonload事件处理程序
设置一个可以触发每个人的计时器 毫秒通过setInterval()和if 它看到计数器递增, 将当前位置更改为a 攻击者控制的服务器
该服务器用于提供页面 HTTP状态代码204,但没有 导致浏览器导航 任何地方
答案 1 :(得分:2)
令人高兴的是,在Internet Explorer之外没有什么可行的(它允许在iframe中禁用JS作为安全功能)。
如果网站的作者不希望他们的网页被框起来,那么这就是他们的选择。