V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
bcpxqz
V2EX  ›  问与答

js 被链路劫持怎么解决?

  •  
  •   bcpxqz · 2014-11-21 13:36:15 +08:00 · 7450 次点击
    这是一个创建于 3689 天前的主题,其中的信息可能已经有所发展或是发生改变。
    js是被部署在很多的第三方网站上,接到网站投诉,说我们js会弹窗,通过抓包分析,发现是js请求被链路劫持,返回中被加入了某联盟的弹窗代码。一个网站配合我们重写了代码,改写的方法判断如果写入非白名单的域名的js就发送监测,通过数据分析发现劫持发生在全国各个区域,特别几个省份量非常大,这些量,在每个省的每个市分布都比较平均。

    能有这个能力劫持的,听朋友分析,有运营商,和运营合作的亿字开头的某公司,还有cdn,cdn首先排除了,干这个是砸招牌啊,人家大厂应该不会做这种事情吧,亿字开头的公司不能投放这么小联盟的广告啊,运营估计也不会鸟这么个小联盟吧,然后又听熟悉联盟的朋友说,个人也是有能力做到这点的。

    在发生劫持的机器上分析,dns返回是正确的,确实是发生在链路这块,加入的是那家联盟的代码我们也知道(有办公地点的公司),其中的id肯定是可以关联到劫持者的,劫持者和联盟可能有资金来往,当然也不能排除联盟参与的可能性,js中也同时加入了第三方网站统计代码。

    现在我们似乎也没什么办法来解决这个问题,报案吧,似乎也没什么人鸟我们,找联盟和第三方统计网站吧,人家也不一定配合,配合也啥效果。找电信投诉似乎也无门,请大家给个建议,非常感谢。
    12 条回复    2014-11-21 19:13:08 +08:00
    sneezry
        1
    sneezry  
       2014-11-21 13:39:54 +08:00 via iPhone
    可以通过csp控制
    tabris17
        2
    tabris17  
       2014-11-21 13:40:56 +08:00
    gzip压缩一下
    cnxh
        3
    cnxh  
       2014-11-21 13:44:06 +08:00
    ssl?
    bcpxqz
        4
    bcpxqz  
    OP
       2014-11-21 13:45:09 +08:00
    @tabris17 已经是gzip压缩过的,gzip压缩解决不了这个问题哦。
    bcpxqz
        5
    bcpxqz  
    OP
       2014-11-21 13:51:14 +08:00
    @cnxh ssl我测试过在http页面中引用https的资源都没有安全提示,但是https的cdn成本有点高。
    bcpxqz
        6
    bcpxqz  
    OP
       2014-11-21 13:56:46 +08:00
    @sneezry Content Security Policy似乎对链路劫持没什么效果。是返回内容被修改了。

    链路劫持,腾讯安全中心有文章解释得很清楚: http://security.tencent.com/index.php/blog/msg/10
    sneezry
        7
    sneezry  
       2014-11-21 14:02:54 +08:00 via iPad
    @bcpxqz 嗯,我的意思是把广告内容屏蔽,因为isp耍流氓咱们基本只能行政上解决,要么就Ssl
    guotie
        8
    guotie  
       2014-11-21 14:09:13 +08:00
    终极方案:ssl.
    whywhywhy
        9
    whywhywhy  
       2014-11-21 15:41:11 +08:00
    劫持?那用js把劫持后的html代码返回给服务器吧。

    然后分析分析,看看怎么解决。

    如果劫持的比较狠。比如劫持成一个空白的页面,里面放个iframe指向你的站,那就无奈了。
    xoxo
        10
    xoxo  
       2014-11-21 17:33:32 +08:00
    https://...

    contact me...
    bcpxqz
        11
    bcpxqz  
    OP
       2014-11-21 18:16:31 +08:00
    @whywhywhy 我也看了很多解决方法,一般来说只能运营商有能力做这种事情,所以我们尝试工信部投诉了。

    劫持返回的内容千变万化,客户端所做的措施也是比较被动,而且我们的js是部署在第三方网站上的。
    aveline
        12
    aveline  
       2014-11-21 19:13:08 +08:00
    强制走 HTTPS,不过碰上 DNS 劫持的话就打不开了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5575 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 119ms · UTC 06:36 · PVG 14:36 · LAX 22:36 · JFK 01:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.