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


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


          網站導航:
           
          主站蜘蛛池模板: 永川市| 尼玛县| 南乐县| 江川县| 措勤县| 承德市| 遂溪县| 贵南县| 淄博市| 鹤山市| 三台县| 怀集县| 枝江市| 上犹县| 甘南县| 全椒县| 南平市| 宝应县| 游戏| 富民县| 莆田市| 兴城市| 彩票| 洪湖市| 政和县| 定边县| 桑日县| 抚松县| 大关县| 南宫市| 富平县| 海林市| 宾川县| 友谊县| 万山特区| 定兴县| 高淳县| 临沂市| 石嘴山市| 九江市| 响水县|