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

运营商劫持加广告一般是加在 body 下面的吧,那我把我的内容放在一个 body 下 div 里,程序里有个脚本直接把不是这个 div 的内容全删除了是不是就可以反劫持了?

  •  
  •   doubleflower · 2017-10-30 09:15:40 +08:00 · 3737 次点击
    这是一个创建于 2360 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我要把 https 改成 http,有些地区就会有劫持问题,我没被劫持过不知道具体劫持有哪些情况,我把这些情况都处理了是不是就行了?(相当于做个应用内 AdBlocker)
    20 条回复    2017-10-30 11:51:42 +08:00
    7654
        1
    7654  
       2017-10-30 09:25:45 +08:00
    运营商劫持不都是将目标网站放入 frame 中的吗
    wclebb
        2
    wclebb  
       2017-10-30 09:28:30 +08:00
    感觉应该不断地追查,然后屏蔽。
    那还不如让人安装 ADBlock
    doubleflower
        3
    doubleflower  
    OP
       2017-10-30 09:29:27 +08:00
    @7654 那种应该不是最常见的吧,而且最好处理,判断下顶层 frame 不是自已域名不是就重设就行
    doubleflower
        4
    doubleflower  
    OP
       2017-10-30 09:31:22 +08:00
    @wclebb 为什么要不断追查,把不是自已 div 的元素全删除不就一劳永逸了?
    viko16
        5
    viko16  
       2017-10-30 09:31:34 +08:00 via Android
    记得有用 HTML 注释来反劫持插入的…
    LanFomalhaut
        6
    LanFomalhaut  
       2017-10-30 09:34:02 +08:00
    想多了 各地运营商劫持规则不一样 常见的是 iframe 恶心的按照文件名劫持 如 JS/apk 等等 有 https 为何还要降级成 http..
    wclebb
        7
    wclebb  
       2017-10-30 09:34:51 +08:00
    @doubleflower #4 原因如 #6 楼
    7654
        8
    7654  
       2017-10-30 09:35:47 +08:00
    @doubleflower #3 我这边(江苏电信)的劫持都是这种,已经收集到了 100 多个页面资料了,有纯 IP 也有使用域名的
    doubleflower
        9
    doubleflower  
    OP
       2017-10-30 09:40:26 +08:00
    @LanFomalhaut iframe 最好处理。截持 JS 不就是为了加内容到 body 吗?去掉不就行了


    我网站在国外,https 最近很多用户反映打不开,http 反而可以。
    doubleflower
        10
    doubleflower  
    OP
       2017-10-30 09:42:00 +08:00
    @7654 iframe 被套的加个这就行了:
    if (window.location !== window.top.location) { window.top.location = window.location; }
    doubleflower
        11
    doubleflower  
    OP
       2017-10-30 09:43:55 +08:00
    我说的意思是,html 结构如下:

    ...
    <body>
    <div id="mycontent">我的网站内容</div>
    </body>
    ...

    我应用内的脚本会把 body 下除#mycontent 之外的内容全 remove 了,这是不是就可以防所有加广告的劫持了?
    learnshare
        12
    learnshare  
       2017-10-30 09:51:47 +08:00
    为什么不用 HTTPS
    est
        13
    est  
       2017-10-30 09:55:57 +08:00
    你这样写

    <html><!--
    <head>
    <body>
    -->
    <head>
    <body>

    可以避免一波劫持。亲测有效。

    但是现在劫持手段太 jb 贱了。

    有的直接强制在返回 html 最开头插入 <script>

    根本无视任何页面结构。
    doubleflower
        14
    doubleflower  
    OP
       2017-10-30 09:57:44 +08:00
    @est 我之前就是这样的,没有用,客户给我截图看了,不过后来我上 https 了就没分析过为什么没用。
    doubleflower
        15
    doubleflower  
    OP
       2017-10-30 10:00:02 +08:00
    @learnshare 之前我说了啊,现在很多地方直接就打不开国外的 https 了,我这几天被烦死了只好降级 http
    hubert3
        16
    hubert3  
       2017-10-30 10:04:57 +08:00
    @est 这个是什么原理?
    lybtongji
        17
    lybtongji  
       2017-10-30 10:07:52 +08:00
    这个试试? web.jobbole.com/87561/
    est
        18
    est  
       2017-10-30 10:10:52 +08:00
    @doubleflower 让客户给你截网页源码
    SilentDepth
        19
    SilentDepth  
       2017-10-30 10:28:16 +08:00
    @hubert3 #16 HTML 代码分析没有忽略注释,只是简单地找到第一个 <head> 或者 <body> 然后插入劫持代码,于是被一同注掉了
    gaolycn
        20
    gaolycn  
       2017-10-30 11:51:42 +08:00
    @doubleflower 你这个不会死循环吗,修改 window.top.location 的内容不还是篡改后的吗
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3133 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 14:38 · PVG 22:38 · LAX 07:38 · JFK 10:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.