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

如何彻底防止网站被恶意反代?

  •  
  •   Loyalsoldier · 2018-06-03 12:13:13 +08:00 · 5775 次点击
    这是一个创建于 2398 天前的主题,其中的信息可能已经有所发展或是发生改变。

    想了一下,好像没有办法阻止,因为:

    1. Referer 可以伪造;
    2. 用户 IP 和 Forwarded For 都可以传递;
    3. Host 可以显式定义为被反代的域名;
    4. 如果用 Javascript 来判断域名,反代过程中可以用 Nginx sub_filter 或者 subs_filter 删掉该 Javascript 代码

    不知道各位还有啥高见?

    18 条回复    2018-06-04 17:39:08 +08:00
    gamexg
        1
    gamexg  
       2018-06-03 12:21:56 +08:00 via Android
    2.你可以获得代理 ip 的,限制单个 ip 频率即可。
    4.互相对抗,js 里别明文提供判断代码外加随机加定期更换,一般人应该没兴趣继续反代了。
    Loyalsoldier
        2
    Loyalsoldier  
    OP
       2018-06-03 13:03:36 +08:00
    @gamexg #1 传递了用户 IP 和 X-forwarded-for 之后,怎么获取代理 IP ?
    Lax
        3
    Lax  
       2018-06-03 13:16:20 +08:00   ❤️ 1
    你看到的 remote address 就是代理的 ip 地址。
    不是自己设置的 x-forwarded-for,仅作参考,不要信任就好了。
    一般是从 x-forwarded-for 中反向查,去掉自己的所有代理地址之后,只信任剩下的下一个地址
    如果从这个 ip 来的请求特别多就可以“关注”一下了
    gamexg
        4
    gamexg  
       2018-06-03 13:17:35 +08:00
    @Loyalsoldier #2 你前面是不是有 CDN ?

    没有 cdn 然后网站被通过反代访问时,remote_addr 获得的就是反代服务器的 ip。
    有 cdn 就翻 cdn 文档,里面有写用户实际 ip 通过哪个字段传递给你了。
    doubleflower
        5
    doubleflower  
       2018-06-03 13:54:13 +08:00 via Android   ❤️ 1
    怎么没人反带我的网站,相当于帮我宣传了
    Livid
        6
    Livid  
    MOD
       2018-06-03 14:07:14 +08:00
    直接用 iptables 封掉对方 IP。
    Foolt
        7
    Foolt  
       2018-06-03 14:41:48 +08:00
    防不了,现在反代的人少了,更多的是采集。
    Loyalsoldier
        8
    Loyalsoldier  
    OP
       2018-06-03 15:07:26 +08:00
    @Lax #3
    @gamexg #4

    感谢二位!我原本以为通过下面的方式,被反对的服务器就看不到反代服务器的 IP 了:

    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    Showfom
        9
    Showfom  
       2018-06-03 15:09:14 +08:00 via iPhone
    第四点你把 js 代码混淆起来
    tan90
        10
    tan90  
       2018-06-03 15:26:28 +08:00   ❤️ 1
    我以前接触过一个反代我网站的站点。
    就首页的请求是走的代理,其他资源都是直接通过我的域名加载。
    那么我就开了防盗链,防盗链返回一个 js,js 里面判断访问时输入的域名,如果该域名不在允许的列表里,就 301 跳回我的主站,挺有用的。
    winglight2016
        11
    winglight2016  
       2018-06-03 18:46:19 +08:00
    上 https 似乎可以防止,不过我不确定了
    xencdn
        12
    xencdn  
       2018-06-03 19:10:25 +08:00
    部份文字转图片 加自已的水印
    qqpkat2
        13
    qqpkat2  
       2018-06-04 00:56:17 +08:00
    楼上说获取代理 IP 的估计都没做过反爬
    高匿代理了解一下,拨号 vps 再了解一下,还有程序内嵌浏览器了解一下
    Loyalsoldier
        14
    Loyalsoldier  
    OP
       2018-06-04 09:09:08 +08:00
    @qqpkat2 #13

    请问怎么做高匿名代理呢?
    qqpkat2
        15
    qqpkat2  
       2018-06-04 10:40:51 +08:00
    @Loyalsoldier 这个。。就不告诉你
    Loyalsoldier
        16
    Loyalsoldier  
    OP
       2018-06-04 11:38:58 +08:00
    @winglight2016 #11

    HTTPS 怎么防止?……
    Loyalsoldier
        17
    Loyalsoldier  
    OP
       2018-06-04 11:40:25 +08:00
    @qqpkat2 #15

    找到了篇文章,你说的高匿代理应该就是文章里面说的高匿代理的表现吧?通过随机选取一个代理 IP 来控制 remote_addr

    https://blog.mimvp.com/article/18470.html
    qqpkat2
        18
    qqpkat2  
       2018-06-04 17:39:08 +08:00
    @Loyalsoldier 尽信书不如无书啊,小伙子,万一高匿代理不加代理头呢?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3245 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 12:55 · PVG 20:55 · LAX 04:55 · JFK 07:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.