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 閱讀(3873) 評論(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^ : )  回復  更多評論
            


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


          網站導航:
           
          主站蜘蛛池模板: 洪雅县| 谷城县| 阿拉善盟| 胶南市| 商河县| 金昌市| 廉江市| 清河县| 开平市| 江门市| 班戈县| 禄丰县| 罗平县| 盐源县| 武隆县| 邛崃市| 大渡口区| 莱芜市| 定南县| 五峰| 海口市| 苏州市| 沭阳县| 合阳县| 东乡县| 且末县| 泌阳县| 定日县| 驻马店市| 霍山县| 自贡市| 岫岩| 南汇区| 民县| 措美县| 鄯善县| 隆林| 安国市| 永登县| 彭阳县| 加查县|