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

网站如何防止运营商广告劫持?

  •  
  •   tvvocold · 2014-10-31 15:41:39 +08:00 · 9741 次点击
    这是一个创建于 3680 天前的主题,其中的信息可能已经有所发展或是发生改变。
    运营商比如电信ipush,长宽等,
    目前找到http://news.dbanotes.net/jailbreak.js 可能有帮助。请问有无更好的解决方案?
    24 条回复    2014-11-01 10:51:18 +08:00
    tabris17
        1
    tabris17  
       2014-10-31 15:46:16 +08:00
    输出的每个页面都加上签名,MD5什么的就行,然后用 js 验证

    可以用 document.documentElement.outerHTML 来获取页面代码
    tvvocold
        2
    tvvocold  
    OP
       2014-10-31 15:47:57 +08:00
    @tabris17 每个页面都要加?太麻烦了
    wy315700
        3
    wy315700  
       2014-10-31 15:50:28 +08:00
    HTTPS
    tvvocold
        4
    tvvocold  
    OP
       2014-10-31 15:51:12 +08:00
    @wy315700 速度是个问题
    tvvocold
        5
    tvvocold  
    OP
       2014-10-31 15:53:26 +08:00
    在dba上看到有人说stackoverflow在ifame劫持这方面做的比较好,不知道怎么找到相关代码。
    usedname
        6
    usedname  
       2014-10-31 15:54:17 +08:00 via Android
    除了https全程加密还有别的办法?
    tabris17
        7
    tabris17  
       2014-10-31 15:59:57 +08:00
    @tvvocold 用webserver的插件来实现
    ooxxcc
        8
    ooxxcc  
       2014-10-31 16:01:09 +08:00
    长宽直接劫持部分js请求道自己的广告js,除非https基本无解吧

    https能慢多少
    tvvocold
        9
    tvvocold  
    OP
       2014-10-31 16:06:39 +08:00
    @tabris17 求链接
    tvvocold
        10
    tvvocold  
    OP
       2014-10-31 16:07:23 +08:00
    @ooxxcc 小带宽,亲测慢很多,且百度爬虫对加密站很不友好
    raincious
        11
    raincious  
       2014-10-31 16:13:30 +08:00
    试试看 Content-MD5 头

    http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.15

    但是也不安全,因为Header每一个途径的服务器都能修改。所以想要保持传输安全,必须使用HTTPS。
    tvvocold
        12
    tvvocold  
    OP
       2014-10-31 16:19:34 +08:00
    @raincious 但是开启全程https对服务器,SEO,运营商和用户都是一种考验啊,国内网络环境你懂的
    raincious
        13
    raincious  
       2014-10-31 16:23:37 +08:00
    @tvvocold 那就看是不是你被针对性攻击了。

    如果没有的话,用私钥算一个MD5,然后Javascript验证。不过你知道,验证的话……私钥也是要传的。

    不过应该有非对称的解决方案。
    belin520
        14
    belin520  
       2014-10-31 16:24:36 +08:00 via Android   ❤️ 1
    网站最后 <!--
    tabris17
        15
    tabris17  
       2014-10-31 16:26:46 +08:00
    @tvvocold 没链接,功能不复杂,自己写咯
    tvvocold
        16
    tvvocold  
    OP
       2014-10-31 16:27:21 +08:00
    @belin520 不是吧?管用?
    ooxxcc
        17
    ooxxcc  
       2014-10-31 16:59:05 +08:00
    @belin520 长宽是直接把你的.js给302到自己服务器上的插入广告脚本了,这样应该没用吧。。。。

    长宽去死一百次
    tvvocold
        18
    tvvocold  
    OP
       2014-10-31 17:22:33 +08:00
    @ooxxcc 怎么解决?
    xoxo
        19
    xoxo  
       2014-10-31 17:32:30 +08:00
    治肾亏,不含糖,
    防运营商劫持哪家强?
    v2ex找 @xoxo 代购ssl证书,完美解决这个问题
    spance
        20
    spance  
       2014-10-31 17:48:54 +08:00
    全站https是正路。除了中间人攻击,别人无法中途篡改。
    并且引入的静态资源也要走https才够安全。
    belin520
        21
    belin520  
       2014-10-31 17:51:44 +08:00 via Android
    @ooxxcc 这么贱,也没办法,对付在html最后插入有效

    @tvvocold
    cnxh
        22
    cnxh  
       2014-10-31 17:52:30 +08:00
    劫持联盟广告的何解?
    lyragosa
        23
    lyragosa  
       2014-10-31 18:44:09 +08:00
    方法1

    <script> /*

    方法2

    <!--

    经过测试 对于一些普通的劫持有效(太恶心的,比如反代你的网站在服务器上修改出广告再推给客户端就无解了)

    此外:

    //防止被iframe嵌套
    if (top != self) top.location=self.location;

    //禁用cookie的浏览器无法访问
    if (!navigator.cookieEnabled) document.location = '/500.html';

    具体效果可以点我个人资料看我的网站,为避免广告嫌疑就不发了。
    ooxxcc
        24
    ooxxcc  
       2014-11-01 10:51:18 +08:00
    @tvvocold 没什么好方法
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2702 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 15:38 · PVG 23:38 · LAX 07:38 · JFK 10:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.