帧Buster…巴斯特码假设您不希望其他站点在<iframe>:<iframe src="http://example.org"></iframe>因此,您将反框架、破坏框架的JavaScript插入到所有页面中:/* break us out of any containing iframes */if (top != self) { top.location.replace(self.location.href); }太棒了!现在你“破获”或突破任何包含IFRAME的自动。除了一个小问题。事实证明,你的破坏帧代码可以被破解, 如图所示:<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://example.org/page-which-responds-with-204'
}
}, 1) </script>此代码执行以下操作:每次浏览器试图从当前页面导航时,通过window.onbeforeunload事件处理程序设置一个计时器,每毫秒通过setInterval(),如果它看到计数器递增,则将当前位置更改为攻击者控件的服务器该服务器使用HTTP状态代码向页面提供服务204,这不会导致浏览器在任何地方导航。我的问题是-这更像是一个JavaScript难题,而不是一个实际的问题-你怎么能打败那个破坏帧的破坏者?我有一些想法,但在我的测试中没有什么效果:试图清除onbeforeunload事件通过onbeforeunload = null无效果添加alert()停止进程,让用户知道它正在发生,但没有以任何方式干扰代码;单击“确定”可以继续正常运行。我想不出有什么办法setInterval()定时器我不是一个JavaScript程序员,所以下面是我对您的挑战:嘿,巴斯特,你能把那个破相框的家伙弄坏吗?
添加回答
举报
0/150
提交
取消