首页 >web前端 >js教程 >我们如何击败使用'setInterval”和'onbeforeunload”的帧破坏破坏者?

我们如何击败使用'setInterval”和'onbeforeunload”的帧破坏破坏者?

Susan Sarandon
Susan Sarandon原创
2024-12-09 03:44:09543浏览

How Can We Defeat a Frame-Busting Buster That Uses `setInterval` and `onbeforeunload`?

Frame Buster Buster Buster:挑战坚不可摧

您已经实现了一个强大的框架破坏脚本,以防止您的网站显示在一个 iframe。但是,当您的框架破坏代码本身成为目标时会发生什么?

框架破坏破坏者。

聪明的攻击者开发了一个可以绕过您的框架的脚本 -通过利用 window.onbeforeunload 事件和设置为每毫秒触发的计时器来破坏措施。攻击者的脚本:

  • 通过增加 window.onbeforeunload 事件处理程序中的计数器来防止浏览器离开当前页面。
  • 将位置重定向到由攻击者使用计时器。
  • 攻击者的服务器响应 204 状态代码,阻止浏览器导航到任何地方。

你最初尝试击败这个破坏帧的破坏者已经失败了。清除onbeforeunload事件没有效果,警报框只是提供暂时的中断。

巴斯特巴斯特巴斯特。

你能打破循环,打败顽强的框架吗? -破坏破坏者?中和攻击者脚本的一种方法是针对 setInterval() 计时器:

// Detect the attacker's script
var busterBuster = setInterval(function() {
  if (prevent_bust > 0) {
    // Bust the buster
    clearInterval(busterBuster);
    prevent_bust = 0;
  }
}, 1);

此脚本:

  • 定期检查攻击者计时器是否存在。
  • 当检测到计时器时,它会清除计时器,并将 Prevent_bust 重置为0.
  • 此操作有效地打破了循环并阻止攻击者的脚本继续执行。

结论。

虽然框架-busting buster 是一个艰巨的挑战,buster-buster-buster 展示了 JavaScript 程序员的弹性和适应性。通过仔细分析攻击者的代码并利用 JavaScript 功能的知识,我们甚至可以克服最复杂的威胁。

以上是我们如何击败使用'setInterval”和'onbeforeunload”的帧破坏破坏者?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn