使用JavaScript崩溃firefox

时间:2010-04-23 23:32:13

标签: javascript security firefox

我是测试团队的一员,并且在Firefox浏览器中使用JavaScript负责“表现糟糕”。我已经尝试these methods来关闭浏览器,但是他们都没有做任何比导致弹出窗口要求关闭脚本更糟糕的事情。

还有其他想法吗?

3 个答案:

答案 0 :(得分:11)

有点类似于“叉炸弹”

<html>
<body>
<a href="#" onclick="die()">click me!</a>
<script>
function die () {
  setTimeout(function () {die(); die()}, 0)
}
</script>
</body>
</html>

FF 3.6及以下版本无法停止(除非用户碰巧很快关闭违规标签)。你让它运行的时间越长,它就越凶狠。最终会耗尽进程可用的所有内存。 CPU上的负载也应该增加。一些操作系统将比其他操作系统更好地应对错误的FF。如果您还在每个周期对DOM应用适当的负载,则可以使其更加简并。

编辑:“仅为了世界的利益而使用这些知识。” : - )

答案 1 :(得分:6)

脚本执行时看门狗很好,但它并没有解决模态循环问题。转到alertconfirmprompt框会停止计时器,这样做:

<script>while(true) alert('alert bomb');</script>

难以逃脱,而且:

<body onbeforeunload="while(true) alert('alert bomb');">

实际上是不可能的。 (让您的任务管理器得心应手。)

使用难以逃避的模态循环是攻击性间谍软件安装程序页面的最佳策略。 (“单击是立即安装VomitBar或面对无尽的警报框......”)

答案 2 :(得分:2)

我设法通过对大约10,000多个元素进行大量DOM插入来反复崩溃我的Firefox。

基本上,用户单击按钮以触发jQuery AJAX调用。该调用将返回一个完整的HTML文件,该文件将使用jQuery附加到特定的div。

<script>
  $("div.content").empty();
  $("div.content").html(data);
</script>

然后,一旦添加了数据,它将尝试解析整个数据块,并将onClick和onHover事件添加到树中的每个元素。

请放心,每次运行此功能时,我的浏览器都会崩溃。它会调出通常的“脚本运行缓慢,你想取消它”,但我永远无法取消它,并且总是不得不按CTRL + ALT + DEL它。

仅供参考,我从未计划过进行10,000元素插入,这对我来说是一个错误。我用JOIN查询数据库并打算做SELECT DISTINCT,而是做了SELECT而不是返回100个元素,因为连接我返回了10,000。哎呦。