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

2018-09-21 10:33:09 +08:00
 maojy1989
最近用户反馈网站有个页面打不开,远程查看报错是
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 还有没有别的办法呢?
4074 次点击
所在节点    Vue.js
17 条回复
noe132
2018-09-21 10:49:33 +08:00
8102 年了还有不上 https 的项目?
赶紧加上吧
maojy1989
2018-09-21 10:58:56 +08:00
@noe132 #1 这个项目用的不是我们的域名,已经跟客户说让他们买证书了
InternetExplorer
2018-09-21 11:23:25 +08:00
vue 接管的标签里写上 “如果你看到这行字说明你的网络存在劫持,请刷新重试”
FakeLeung
2018-09-21 11:32:16 +08:00
妈耶,原来是被劫持了。。。
我的 vue 项目,几乎每天都会被劫持 100 次以上,都是 load chunk 问题,然后,本地无法复现。就某几款国产手机出问题了。。。
maojy1989
2018-09-21 11:32:18 +08:00
@InternetExplorer #3 这也就真的只能提示网络存在劫持了,刷新是解决不了问题的,劫持一直在
maojy1989
2018-09-21 11:34:00 +08:00
@FakeLeung #4 手机是劫持的重灾区,因为不好排查
msputup
2018-09-21 11:40:21 +08:00
可以试试 router.onError 去捕获 loading chunk 错误,然后如果遇到这个就刷新。
strugglexiang
2018-09-21 11:43:19 +08:00
涨知识
yikyo
2018-09-21 11:44:21 +08:00
请使用 HTTPS,
实在没有办法用上 HTTPS 的时候,请使用 csp。
virusdefender
2018-09-21 13:24:19 +08:00
csp 策略
susecjh
2018-09-21 14:13:17 +08:00
@msputup 会不会出现无限刷新的状况
msputup
2018-09-21 14:15:14 +08:00
@susecjh 没有试验过,应该不至于,我看运营商插代码,一般刷新过后就没有了,无限刷新那运营商得有多没下限了。
king2014
2018-09-21 14:19:18 +08:00
用一个免费的 ssl 证书也可以啊
easylee
2018-09-21 14:23:15 +08:00
非前端,但是一直深受这些困扰,在国内这些就不能被 ban 吗?也没有相关的法律吗?
TomatoYuyuko
2018-09-21 14:27:10 +08:00
有个土办法,<!--<body>-->
以此类推
jjplay
2018-09-21 14:39:52 +08:00
qinghon
2020-03-04 20:23:24 +08:00
@jjplay 时隔挺长时间来回下,这样也会影响 vue dev
![image.png]( https://i.loli.net/2020/03/04/ojJZeWqshyL3uAK.png)

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/491436

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX