emu in blogjava

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            171 隨筆 :: 103 文章 :: 1052 評論 :: 2 Trackbacks
          IE在解釋表達式的時候顯然大有優(yōu)化的余地,F(xiàn)ireFox就沒這個毛病。下面這段小代碼可以輕松讓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)的時候把我的內存全吃光了,在虛擬內存支持下還是可以執(zhí)行完成:
          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 閱讀(3865) 評論(7)  編輯  收藏

          評論

          # re: 為IE找個新死法[未登錄] 2008-02-01 23:05 sonic
          驚奇的發(fā)現(xiàn)你的玩法在遨游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^ : )  回復  更多評論
            


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


          網(wǎng)站導航:
           
          主站蜘蛛池模板: 荆州市| 铜川市| 吴桥县| 柞水县| 江孜县| 茌平县| 深泽县| 兴国县| 桐梓县| 肇州县| 远安县| 大足县| 临城县| 阳新县| 会泽县| 尖扎县| 哈密市| 搜索| 伽师县| 奎屯市| 天柱县| 通海县| 梁平县| 洞头县| 长岭县| 云林县| 兰州市| 株洲市| 塔河县| 庄浪县| 翁源县| 台安县| 边坝县| 双鸭山市| 阳原县| 宁国市| 安康市| 如皋市| 延川县| 行唐县| 扎赉特旗|