Astralis
V2EX  ›  Vue.js

VUE 项目遇到运营商劫持强插代码怎么办

  •  
  •   Astralis · Sep 21, 2018 · 4714 views
    This topic created in 2816 days ago, the information mentioned may be changed or developed.
    最近用户反馈网站有个页面打不开,远程查看报错是
    Error: Loading chunk 6 failed. at HTMLScriptElement.d

    Google 搜了好久没有找到原因是什么,也没有找到解决方案是什么,只是看到有人说是上线以后才发生这种情况。

    浏览别人的评论发现其中一个回复说是因为页面里被动态插入了 script 导致的,我想到了项目里客户要求插入的百度商桥代码,但是其他页面都是好好的,心想可能是因为那个不能正常打开的页面是另开窗口的吧,然后我在那个路由下面设置了不插入百度的代码,然后神奇的恢复了,就没有再管了,结果今天又出现同样的问题了。

    这次远程的时候不再纠结报什么错的问题了,直接查看页面元素,然后发现 body 里多了两个 script

    https://res.drmfslx.cn/do/do.js?cid=C9083CDB 这是其中一个 另一个的域名是 https://engine.drmfslx.cn

    换了浏览器还是被插入了这两个标签,从 hosts 里把这两个域名屏蔽掉以后页面恢复正常。

    像这种劫持插入 script 标签导致页面报错无法加载的情况该怎么处理,除了上 https 还有没有别的办法呢?
    17 replies    2020-03-04 20:23:24 +08:00
    noe132
        1
    noe132  
       Sep 21, 2018
    8102 年了还有不上 https 的项目?
    赶紧加上吧
    Astralis
        2
    Astralis  
    OP
       Sep 21, 2018
    @noe132 #1 这个项目用的不是我们的域名,已经跟客户说让他们买证书了
    InternetExplorer
        3
    InternetExplorer  
       Sep 21, 2018   ❤️ 1
    vue 接管的标签里写上 “如果你看到这行字说明你的网络存在劫持,请刷新重试”
    FakeLeung
        4
    FakeLeung  
       Sep 21, 2018
    妈耶,原来是被劫持了。。。
    我的 vue 项目,几乎每天都会被劫持 100 次以上,都是 load chunk 问题,然后,本地无法复现。就某几款国产手机出问题了。。。
    Astralis
        5
    Astralis  
    OP
       Sep 21, 2018
    @InternetExplorer #3 这也就真的只能提示网络存在劫持了,刷新是解决不了问题的,劫持一直在
    Astralis
        6
    Astralis  
    OP
       Sep 21, 2018
    @FakeLeung #4 手机是劫持的重灾区,因为不好排查
    msputup
        7
    msputup  
       Sep 21, 2018
    可以试试 router.onError 去捕获 loading chunk 错误,然后如果遇到这个就刷新。
    strugglexiang
        8
    strugglexiang  
       Sep 21, 2018
    涨知识
    yikyo
        9
    yikyo  
       Sep 21, 2018   ❤️ 1
    请使用 HTTPS,
    实在没有办法用上 HTTPS 的时候,请使用 csp。
    virusdefender
        10
    virusdefender  
       Sep 21, 2018
    csp 策略
    darylc
        11
    darylc  
       Sep 21, 2018
    @msputup 会不会出现无限刷新的状况
    msputup
        12
    msputup  
       Sep 21, 2018
    @susecjh 没有试验过,应该不至于,我看运营商插代码,一般刷新过后就没有了,无限刷新那运营商得有多没下限了。
    king2014
        13
    king2014  
       Sep 21, 2018
    用一个免费的 ssl 证书也可以啊
    easylee
        14
    easylee  
       Sep 21, 2018 via Android
    非前端,但是一直深受这些困扰,在国内这些就不能被 ban 吗?也没有相关的法律吗?
    TomatoYuyuko
        15
    TomatoYuyuko  
       Sep 21, 2018
    有个土办法,<!--<body>-->
    以此类推
    jjplay
        16
    jjplay  
       Sep 21, 2018   ❤️ 3
    qinghon
        17
    qinghon  
       Mar 4, 2020
    @jjplay 时隔挺长时间来回下,这样也会影响 vue dev
    ![image.png]( https://i.loli.net/2020/03/04/ojJZeWqshyL3uAK.png)
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2871 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 55ms · UTC 04:11 · PVG 12:11 · LAX 21:11 · JFK 00:11
    ♥ Do have faith in what you're doing.