V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
NGINX
NGINX Trac
3rd Party Modules
Security Advisories
CHANGES
OpenResty
ngx_lua
Tengine
在线学习资源
NGINX 开发从入门到精通
NGINX Modules
ngx_echo
tux
V2EX  ›  NGINX

用 Nginx 反向代理屏蔽 iframe 方式 http 劫持

  •  
  •   tux · 2015-07-05 09:40:58 +08:00 · 7078 次点击
    这是一个创建于 3427 天前的主题,其中的信息可能已经有所发展或是发生改变。
    原来研究过一个用浏览器userscript脚本跳过iframe劫持的方法,但效果不理想
    原来的方法在这https://www.v2ex.com/t/193060

    新研究这个通过nginx反代的方法,效果很好
    运营商通过http链路劫持的方式直接修改用户的HTTP数据包,达到加载广告的目的
    JS注入的方式用ADBLOCK之类的插件很容易就屏蔽掉了
    但有一个把用户原始网页放进iframe窗口里的劫持方式特别烦人
    iframe方式劫持有一点可以反劫持,原理就是iframe里的窗口都带一个小尾巴,带特定的尾巴就不会被劫持,不然就会无限循环劫持
    以淘宝的item.taobao.com/item.htm?xxxxxxxxx为例 我这里的加上小尾巴 noj=true后就不会被劫持, 不同的网址和不同的地区小尾巴不一样,需要根据本地情况修改
    下面是nginx配置,我用的是windows版本,以item.taobao.com为例

    server {
    listen 80;
    server_name item.taobao.com;
    location / {
    rewrite ^/item.htm?(.+) /item.htm?noj=true&$1 break;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_pass http://item.taobao.com/;
    }
    }

    #--------按这个格式,有几个网站被劫持就加几个

    在本机或者局域网一台机器上配置好后,有2个方法
    方法1,用浏览器的代理软件,把item.taobao.com用开了nginx的机器代理就行,HTTP协议,端口就是NGINX的端口,这个方法需要在每台上网的机器上都配置一下,且依赖浏览器的代理软件

    方法2,在路由器上把item.taobao.com解析到开了NGINX的机器IP上,且端口只能是80
    然后配置改一行 proxy_pass http://目标网址的IP/;
    这个方法不需要每台上网电脑都配置,也不用浏览器代理软件,但对路由器有要求,需要路由DNSMASQ之类的功能
    4 条回复    2015-07-06 06:30:30 +08:00
    bdbai
        1
    bdbai  
       2015-07-05 11:33:19 +08:00 via iPhone
    你是怎么发现小尾巴的?
    jugelizi
        2
    jugelizi  
       2015-07-05 11:45:09 +08:00
    反正我是host拉黑域名,防火墙拉黑IP,este加黑名单,yiqifa什么的跳来跳去全没了
    tux
        3
    tux  
    OP
       2015-07-05 17:46:36 +08:00
    @bdbai 以 chrome为例,打开被劫持的网页,空白处右键,会显示框架什么的 ,而且一般是右下角会有一个广告,,iframe窗口是100%大小的,网页标题一般也是iframe里窗口的标题,普通人一般不会在意.
    小尾巴就是iframe窗口里的真实的URL,跟top URL对比一下,区别一般会多xxx=xxx之类的尾巴,我这里劫持了淘宝,天猫,还有优酷,搜狐视频,腾讯视频... 运营商太丧心病狂了
    bdbai
        4
    bdbai  
       2015-07-06 06:30:30 +08:00 via iPhone
    @tux 我这里iframe劫持不是必然事件,很难重现,有时候访问v2主页也会被劫持。为江苏电信点赞!
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1183 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 18:22 · PVG 02:22 · LAX 10:22 · JFK 13:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.