V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
maojy1989
V2EX  ›  Vue.js

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

  •  
  •   maojy1989 · 2018-09-21 10:33:09 +08:00 · 4040 次点击
    这是一个创建于 2015 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近用户反馈网站有个页面打不开,远程查看报错是
    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 条回复    2020-03-04 20:23:24 +08:00
    noe132
        1
    noe132  
       2018-09-21 10:49:33 +08:00
    8102 年了还有不上 https 的项目?
    赶紧加上吧
    maojy1989
        2
    maojy1989  
    OP
       2018-09-21 10:58:56 +08:00
    @noe132 #1 这个项目用的不是我们的域名,已经跟客户说让他们买证书了
    InternetExplorer
        3
    InternetExplorer  
       2018-09-21 11:23:25 +08:00   ❤️ 1
    vue 接管的标签里写上 “如果你看到这行字说明你的网络存在劫持,请刷新重试”
    FakeLeung
        4
    FakeLeung  
       2018-09-21 11:32:16 +08:00
    妈耶,原来是被劫持了。。。
    我的 vue 项目,几乎每天都会被劫持 100 次以上,都是 load chunk 问题,然后,本地无法复现。就某几款国产手机出问题了。。。
    maojy1989
        5
    maojy1989  
    OP
       2018-09-21 11:32:18 +08:00
    @InternetExplorer #3 这也就真的只能提示网络存在劫持了,刷新是解决不了问题的,劫持一直在
    maojy1989
        6
    maojy1989  
    OP
       2018-09-21 11:34:00 +08:00
    @FakeLeung #4 手机是劫持的重灾区,因为不好排查
    msputup
        7
    msputup  
       2018-09-21 11:40:21 +08:00
    可以试试 router.onError 去捕获 loading chunk 错误,然后如果遇到这个就刷新。
    strugglexiang
        8
    strugglexiang  
       2018-09-21 11:43:19 +08:00
    涨知识
    yikyo
        9
    yikyo  
       2018-09-21 11:44:21 +08:00   ❤️ 1
    请使用 HTTPS,
    实在没有办法用上 HTTPS 的时候,请使用 csp。
    virusdefender
        10
    virusdefender  
       2018-09-21 13:24:19 +08:00
    csp 策略
    susecjh
        11
    susecjh  
       2018-09-21 14:13:17 +08:00
    @msputup 会不会出现无限刷新的状况
    msputup
        12
    msputup  
       2018-09-21 14:15:14 +08:00
    @susecjh 没有试验过,应该不至于,我看运营商插代码,一般刷新过后就没有了,无限刷新那运营商得有多没下限了。
    king2014
        13
    king2014  
       2018-09-21 14:19:18 +08:00
    用一个免费的 ssl 证书也可以啊
    easylee
        14
    easylee  
       2018-09-21 14:23:15 +08:00 via Android
    非前端,但是一直深受这些困扰,在国内这些就不能被 ban 吗?也没有相关的法律吗?
    TomatoYuyuko
        15
    TomatoYuyuko  
       2018-09-21 14:27:10 +08:00
    有个土办法,<!--<body>-->
    以此类推
    jjplay
        16
    jjplay  
       2018-09-21 14:39:52 +08:00   ❤️ 3
    qinghon
        17
    qinghon  
       2020-03-04 20:23:24 +08:00
    @jjplay 时隔挺长时间来回下,这样也会影响 vue dev
    ![image.png]( https://i.loli.net/2020/03/04/ojJZeWqshyL3uAK.png)
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3193 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 00:38 · PVG 08:38 · LAX 17:38 · JFK 20:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.