emu in blogjava

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            171 隨筆 :: 103 文章 :: 1052 評論 :: 2 Trackbacks
          IE在解釋表達式的時候顯然大有優化的余地,FireFox就沒這個毛病。下面這段小代碼可以輕松讓IE崩潰掉:
          var n=32768;
          var s=new Array(n).join("0+")+0;
          if(confirm("真的要殺了瀏覽器嗎?")){
              eval(s);
              alert(
          "殺不掉,試試把n調大一點?");
          }

          其實就是讓IE解析一個“0+0+0+0....”的表達式。
          在我的機器上,IE6跑到32255就自動關閉了(可以作為一個新的無提示關閉瀏覽器漏洞呵呵,會把同一個進程打開的全部窗口一起殺掉),IE7還要差些,在31515就掛了。opera也好不到哪里去,32180就崩潰了。而FireFox一直跑到2^27(ie和opera還不到2^15)的時候把我的內存全吃光了,在虛擬內存支持下還是可以執行完成:
          var s="0+",n=27 ;
          for(var i=0;i<n;i++) s+=s; 
          alert(s.length
          /2
          s
          +=0
          if(confirm("真的要殺了瀏覽器嗎?")){ 
          eval(s); 
          alert(
          "殺不掉,試試把n調大一點?"); 
          }
          一直到2^28的時候,字符串構造失敗了才罷休。
          posted on 2008-02-01 15:43 emu 閱讀(3864) 評論(7)  編輯  收藏

          評論

          # re: 為IE找個新死法[未登錄] 2008-02-01 23:05 sonic
          驚奇的發現你的玩法在遨游2里面IE不會死哦  回復  更多評論
            

          # re: 為IE找個新死法 2008-02-03 08:49 emu
          嗯,IE6下的TT里面也不會“死”,而是提示內存不夠,和一些IE7一樣的提示。但結果還是算不出來。遨游是否也是一樣的:
          for(var i=0,s="0+";i<15;i++) s+=s;s+=0;
          try{eval(s);}catch(e){alert(e.message)}
            回復  更多評論
            

          # re: 為IE找個新死法 2008-02-07 22:03 金大為
          呵呵,你這是謀殺,不叫找死。  回復  更多評論
            

          # re: 為IE找個新死法 2008-02-11 19:50 天一
          這個應該是JS 編譯器的問題吧。
          和瀏覽器應該無關吧。
          遨游和IE 都是用相同內核。
          但在JS 上的處理有不同而已。
            回復  更多評論
            

          # re: 為IE找個新死法 2008-02-16 23:00 aniude
          應該說這種情況是很特別的,如果你寫一般的JS,也不會這樣寫吧  回復  更多評論
            

          # re: 為IE找個新死法 2008-02-17 12:45 93ttr
          有意思,有空試試  回復  更多評論
            

          # re: 為IE找個新死法 2008-03-09 06:05 le2005
          Only Firefox, hoo^ : )  回復  更多評論
            


          只有注冊用戶登錄后才能發表評論。


          網站導航:
          博客園   IT新聞   Chat2DB   C++博客   博問  
           
          主站蜘蛛池模板: 阿瓦提县| 乌苏市| 九龙县| 沈丘县| 仙游县| 保山市| 镇康县| 波密县| 沐川县| 永平县| 菏泽市| 五河县| 怀远县| 鹤岗市| 湄潭县| 竹山县| 广灵县| 濮阳县| 连山| 信丰县| 博野县| 连平县| 女性| 固镇县| 井冈山市| 大理市| 正宁县| 视频| 长丰县| 唐河县| 楚雄市| 宁南县| 温宿县| 海晏县| 昂仁县| 钦州市| 利津县| 舒城县| 定陶县| 澜沧| 松潘县|