gpt4 book ai didi

javascript - Frame Buster Buster ...需要破坏代码

转载 作者:行者123 更新时间:2023-12-01 14:19:45 24 4
gpt4 key购买 nike

假设您不希望其他站点以 <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 的内容。除了一个小问题。

事实证明,您的帧破坏代码可以被破坏as shown here :

<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 程序员,所以这是我对你的挑战:嘿 buster,你能搞定 frame-busting buster 吗?

最佳答案

关于javascript - Frame Buster Buster ...需要破坏代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12888332/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com