V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
HypoChen
V2EX  ›  JavaScript

这十二行代码是如何让浏览器爆炸的?

  •  
  •   HypoChen · 2016-01-20 23:44:22 +08:00 · 11252 次点击
    这是一个创建于 3026 天前的主题,其中的信息可能已经有所发展或是发生改变。

    http://www.freebuf.com/articles/terminal/93807.html

    谁来解释下原理,不是很明白 23333

    66 条回复    2019-01-16 23:10:29 +08:00
    wjself
        1
    wjself  
       2016-01-20 23:55:33 +08:00
    https://developer.mozilla.org/en-US/docs/Web/API/History/pushState 短時間載入 10000 次網頁,你說內存會不會炸掉喔…
    HypoChen
        2
    HypoChen  
    OP
       2016-01-20 23:59:18 +08:00
    @wjself 内存没有炸掉, CPU 爆了
    HypoChen
        3
    HypoChen  
    OP
       2016-01-21 00:00:02 +08:00
    @wjself 刚才手误粘贴错了

    jiezhi
        4
    jiezhi  
       2016-01-21 00:00:49 +08:00 via iPhone
    苹果重启了!!!
    BSD
        5
    BSD  
       2016-01-21 00:17:38 +08:00
    cpu 占用 90%多,只能通过任务管理器来杀掉。。。
    raysonx
        6
    raysonx  
       2016-01-21 00:24:10 +08:00 via Android
    估計是讓瀏覽器不斷佔用內存且無法釋放,最終 out of memory 崩潰
    cxbig
        7
    cxbig  
       2016-01-21 00:28:19 +08:00
    MacBook 12", MacBook Pro 13"实测无效,
    循环加到一千万次,只是 CPU 满格而已,内存 50%左右
    bdbai
        8
    bdbai  
       2016-01-21 00:52:32 +08:00 via iPhone
    WP 表示只是地址栏爆炸,网页还能轻松关掉,微软黑科技😂
    Biwood
        9
    Biwood  
       2016-01-21 01:02:37 +08:00
    眼睁睁的看着 Chrome 占用内存飙到 2G ,赶紧结束任务了
    505243267
        10
    505243267  
       2016-01-21 01:19:05 +08:00
    safari 和 kernel_task 内存占用均超过 10G , safari web 内容内存占用超过 3G , CPU 满。
    由于还有工作为保存,强行退出了 safari 。
    xbb7766
        11
    xbb7766  
       2016-01-21 01:22:36 +08:00 via Android
    Noscript 大法好。😁
    Trim21
        12
    Trim21  
       2016-01-21 02:26:40 +08:00
    安卓只是 chrome 卡死。。。关掉就好了。。
    lessate2
        13
    lessate2  
       2016-01-21 02:54:34 +08:00 via Android
    安卓扣肉表示进程全重启了
    msg7086
        14
    msg7086  
       2016-01-21 04:52:27 +08:00
    跑到 15000 ,吃了 900M , CPU 倒是满了。 Opera 12 @ Windows 10 。
    Bingbing
        15
    Bingbing  
       2016-01-21 07:45:49 +08:00 via iPhone
    为什么?大神求解答
    feather12315
        16
    feather12315  
       2016-01-21 08:17:26 +08:00 via Android
    Ff Android 就那个网页假死了,关掉就没事了
    lycos
        17
    lycos  
       2016-01-21 08:39:02 +08:00
    v2 上有多少黑客级别的人物啊?
    XueSeason
        18
    XueSeason  
       2016-01-21 08:44:54 +08:00
    CPU 占用 150%,内存飙到 10 G 。直接退出。
    LedChang
        19
    LedChang  
       2016-01-21 08:45:31 +08:00
    cpu 干到 150% rmbp 13
    shakoon
        20
    shakoon  
       2016-01-21 09:01:56 +08:00
    @XueSeason @LedChang 为什么会有 150%这种看起来很不科学的数值?
    qgy18
        21
    qgy18  
       2016-01-21 09:09:31 +08:00 via iPhone
    @shakoon 是因为多核么?
    asdwfwqd
        22
    asdwfwqd  
       2016-01-21 09:24:50 +08:00
    破 Windows xp 里面的 ie 浏览器居然没事
    maskerTUI
        23
    maskerTUI  
       2016-01-21 09:28:02 +08:00
    cpu 一直 70%多,内存从开机的 1g 一直慢慢升到 5.78g ( 99%),然后就升不上去了,没有蓝屏没有重启。
    hronro
        24
    hronro  
       2016-01-21 09:37:15 +08:00
    @asdwfwqd 因为 IE 不支持 pushstate
    quericy
        25
    quericy  
       2016-01-21 09:39:28 +08:00
    Edge 毫无鸭梨

    ariesjia
        26
    ariesjia  
       2016-01-21 09:42:24 +08:00
    @wjself pushstate 只是操作 url ,并没有加载页面。 能解析的更详细一点么,还是没有懂为啥会崩溃
    elvba
        27
    elvba  
       2016-01-21 09:44:51 +08:00
    没压力……
    ooo3o
        28
    ooo3o  
       2016-01-21 10:07:56 +08:00
    IE 对这个免疫的. 谷歌垃圾.
    Jeremial
        29
    Jeremial  
       2016-01-21 10:10:10 +08:00
    @shakoon 因为有几核, 最大就是百分之几百
    komiles
        30
    komiles  
       2016-01-21 10:10:46 +08:00
    demo :(温馨提示:请保存浏览器其它窗口的编辑任务)
    www.0xroot.cn/demo.html (点击一下,又不会怀孕!)
    jun0205
        31
    jun0205  
       2016-01-21 10:16:07 +08:00
    CPU 占了 14% 左右,内存一路飙升,直到占满 32G , Chrome 一直是卡死状态
    xiaodongus
        32
    xiaodongus  
       2016-01-21 10:55:52 +08:00
    ![]( )
    看着好给力
    chuhemiao
        33
    chuhemiao  
       2016-01-21 11:58:26 +08:00
    好奇心害死了多少猫
    breeswish
        34
    breeswish  
       2016-01-21 12:03:12 +08:00   ❤️ 2
    这三行代码是如何让你程序爆炸的?

    while(true) {
    malloc(1024);
    }
    wjself
        35
    wjself  
       2016-01-21 12:08:59 +08:00
    @ariesjia 操作一次貌似是會請求一次的,不過就是不載入而已 況且你看下這串字符串有多大……
    t="";for (var i=0;i<1000000;i++){t+=i.toString()}document.write(t);
    FrankFang128
        36
    FrankFang128  
       2016-01-21 12:10:08 +08:00
    这种网站无法传播呀,差评
    aivier
        37
    aivier  
       2016-01-21 12:32:35 +08:00
    哪个语言这样写不爆炸...

    上次手误这样写了一段 C#,无限调用没释放,第一次见到 堆栈溢出 错误..
    Bingbing
        38
    Bingbing  
       2016-01-21 12:39:19 +08:00
    为什么 点一下浏览器爆炸,然后把代码拷贝出来放到本地,再打开 HTML 浏览器却没有影响
    shyling
        39
    shyling  
       2016-01-21 13:00:33 +08:00
    pushState 会添加浏览器的 History 栈?
    nisekoi
        40
    nisekoi  
       2016-01-21 13:14:52 +08:00
    edge 大法好
    magicdawn
        41
    magicdawn  
       2016-01-21 13:25:53 +08:00
    // 这个呢
    while(true) document.body.append(document.createElement('div'));
    magicdawn
        42
    magicdawn  
       2016-01-21 13:27:26 +08:00   ❤️ 1
    while(true) document.body.appendChild(document.createElement('div'));
    Slienc7
        43
    Slienc7  
       2016-01-21 13:31:08 +08:00
    会不会让可以模拟 JS 的蜘蛛爆炸...
    Slienc7
        44
    Slienc7  
       2016-01-21 13:34:00 +08:00
    @magicdawn
    页面卡死,但是滚动之类都可以,其他窗口均不受影响。
    zhuangzhuang1988
        45
    zhuangzhuang1988  
       2016-01-21 13:34:10 +08:00
    用 ie 表示, 什么问题??
    cheneydog
        46
    cheneydog  
       2016-01-21 13:41:54 +08:00
    哪用那么麻烦:

    while(true){}
    zorksylar
        47
    zorksylar  
       2016-01-21 13:53:43 +08:00
    fedora 23 + chrome 直接 死机
    codenoob
        48
    codenoob  
       2016-01-21 14:07:09 +08:00
    玩着好爽。。看着 cpu 占用爆炸到死机
    zhe13
        49
    zhe13  
       2016-01-21 14:12:39 +08:00
    win10 Firefox.卡顿之后提示是否停止脚本。 CPU31%,内存 20%。一切正常
    bngzoo
        50
    bngzoo  
       2016-01-21 15:01:14 +08:00
    win10 下打开 CPU100% 内存攀升到 93%然后浏览器自动退出。。 QQ 浏览器极速模式
    hging
        51
    hging  
       2016-01-21 15:14:06 +08:00
    貌似他自己线挂了.
    skywatcher
        52
    skywatcher  
       2016-01-21 15:33:27 +08:00
    win10 CPU 95%,内存 60%, chrome 卡死,其他能勉强正常用
    TakanashiAzusa
        53
    TakanashiAzusa  
       2016-01-21 15:58:13 +08:00
    @Bingbing 你直接双击打开的吧?试试用 localhost 。。
    xyu1991
        54
    xyu1991  
       2016-01-21 16:00:14 +08:00
    有人试过 win10 的 edge 浏览器吗?我用那个浏览器测试,瞬间加载完,然后出现“恭喜你,你已经怀孕了! ”这个提示
    xyu1991
        55
    xyu1991  
       2016-01-21 16:02:08 +08:00
    IE 也是一样瞬间加载完成, cpu 使用率只是小幅的增了一下,然后瞬间就下去了。
    wlbcs
        56
    wlbcs  
       2016-01-21 18:25:39 +08:00
    SecurityError: The operation is insecure.
    xmoiduts
        57
    xmoiduts  
       2016-01-21 18:33:57 +08:00 via Android
    可以加入 http 劫持套餐了。
    zhjits
        58
    zhjits  
       2016-01-21 19:23:40 +08:00
    情绪稳定(
    DendimoN
        59
    DendimoN  
       2016-01-21 20:28:13 +08:00
    Safari for Mac 卡死 但是仅仅浏览器卡死而已。。其他很正常。。 iPad 上面的 Safari 打开就白苹果重启了。。
    Esec
        60
    Esec  
       2016-01-21 20:39:38 +08:00
    tSQghkfhTtQt9mtd
        61
    tSQghkfhTtQt9mtd  
       2016-01-22 09:26:04 +08:00
    CPU 60%左右,内存 4.9G 一直升到 10G 后浏览器崩溃 = =
    darksc
        62
    darksc  
       2016-01-22 09:29:01 +08:00
    没压力啊。
    ifaii
        63
    ifaii  
       2016-01-22 14:04:54 +08:00
    chrome 拖死了机器
    iPhone 直接重启
    JimmyChan1506
        64
    JimmyChan1506  
       2016-01-22 16:21:00 +08:00
    MACBOOK PRO 没有重启, IPHONE 也没有
    Khlieb
        65
    Khlieb  
       2016-01-28 14:07:24 +08:00 via Android
    @Esec 我也是,握爪
    sojson
        66
    sojson  
       2019-01-16 23:10:29 +08:00
    为什么要这么复杂?
    while(!0){window.location.href=window.location.href+'?'+Math.random()} 这样不就可以了?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1431 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 16:38 · PVG 00:38 · LAX 09:38 · JFK 12:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.