为了账号安全,请及时绑定邮箱和手机立即绑定

帧Buster…巴斯特码

帧Buster…巴斯特码

慕盖茨4494581 2019-06-09 17:41:11
帧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程序员,所以下面是我对您的挑战:嘿,巴斯特,你能把那个破相框的家伙弄坏吗?
查看完整描述

3 回答

  • 3 回答
  • 0 关注
  • 313 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信