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

有什么办法可以把后端服务器完全隐藏起来啊

  •  1
     
  •   ns2250225 · 266 天前 · 8260 次点击
    这是一个创建于 266 天前的主题,其中的信息可能已经有所发展或是发生改变。
    一个 WEB 项目,浏览器访问的时候,F12 会暴露后端 API 的地址,有没有什么办法可以隐藏这个信息啊,求大神指点 😱,备注:后端接口都做了鉴权,可是老板要求要隐藏后端信息。。。
    83 回复  |  直到 2018-08-03 16:34:08 +08:00
        1
    sakudie   266 天前
    搞个网关? 前端请求到网关,网关转发到对应的服务
        2
    glacer   266 天前   ♥ 1
    CDN 啊。
    隐藏后端服务器 ip 是为了防止 ip 暴露被人恶意攻击,和你接口是否做鉴权没任何关系。
        3
    qiayue   266 天前
    websocket 传二进制数据
        4
    mcfog   266 天前 via Android   ♥ 38
    告诉老板他看到的是前端服务器
        5
    cszhiyue   266 天前
    其实是防爬虫吧
        6
    ThirdFlame   266 天前
    怎么隐藏,不通信就能隐藏了。 能不通信么? 不能,so 隐藏不了。
    CDN 是一种办法,但是接口 该有还是有啊
        7
    cszhiyue   266 天前
    @glacer #2 cdn 主要是静态资源吧? api 做 cdn ????
        8
    xiaohuangya   266 天前 via Android
    @mcfog 真是个小机灵鬼呢。
        9
    PulpFunction   266 天前
    加密?
        10
    prolic   266 天前 via Android
    没有,别想了
        11
    keinx   266 天前
    隐藏接口了怎么请求接口?用 JS 禁止他 F12 ?但是也只是表面功夫呀。
        12
    guixiexiezou   266 天前
    cdn 居然能做 api???????怎么实现的。。完全隐藏不可能, 但可以做成混淆,例如微博那种动态生成
        13
    Quarter   266 天前 via iPhone
    不可能的,你总得有一个请求地址吧
        14
    chairuosen   266 天前
    @guixiexiezou 国内安全宝那种就可以啊 国外 cloudflare,全站 CDN
        15
    glacer   266 天前   ♥ 1
    @cszhiyue
    @guixiexiezou
    域名 A 记录指到 CDN,CDN cname 记录指到服务器
        16
    v2dead   266 天前
    你们是怕人攻击 DDos 么?简单的买个防 D 代理,业务服务器就隐藏在高防 IP 后面了。


    对了,套路云穷逼套餐 30Gb 的是 2 万每月起步。
        17
    whypool   266 天前
    没有,下一个
        18
    mawerss1   266 天前
    @mcfog 你这个小机灵可真鬼
        19
    NicholasYX   266 天前
    隐藏了怎么请求?
        20
    WordTian   266 天前 via Android
    隐藏 ip 可以,隐藏接口不可能啊
        21
    glfpes   266 天前 via Android
    api 混淆服务,之前开发过。
        22
    jswh   266 天前
    使用 websocket,不要用 api,就没有 api 暴露了
        23
    swcat   266 天前 via iPhone
    肯定是告诉老板花钱买就行了呀
        24
    Cbdy   266 天前 via Android
    @glacer 抓包还是能抓到源站 ip 呀
        25
    tongtf   266 天前
    域名解析到 CDN,动静态资源都让走 CDN,CDN 回源到后端服务器,静态资源缓存,动态调用设置不缓存
        26
    glacer   266 天前
    @Cbdy 得到的是 cdn 的 ip
        27
    sampeng   265 天前
    楼上说 cdn 不能隐藏动态接口的怕是没这么用过的吧。。cache-control 头干嘛使的。。。
        28
    sampeng   265 天前   ♥ 2
    ps 一句。cdn 不仅仅可以隐藏真实服务器 ip。还能做到防 ddos。以及优化链路连接性。当然,会损失延迟和。。。钱
        29
    icylogic   265 天前 via iPad
    不就是用类似 cloudflare 那种做反向代理吗。。。域名下的 dns 和证书都变成 cloudflare 的了。。。一般人都看不到你原服务器 ip
        30
    Raynard   265 天前
    只能用 CDN 了,该回源的回源,该加速的加速。还能防御 ddos,防 c,就是费钱啊老铁
        31
    someonedeng   265 天前
    @mcfog 666
        32
    ajan   265 天前 via Android
    把服务器停掉呀
        33
    reus   265 天前
    做不到就做不到,老板自己不懂,为什么要要求?直接和他讲做不到!
        34
    mingyun   265 天前
    你老板是不也懂点技术
        35
    qianmeng   265 天前 via Android
    cdn 加反向代理两层,估计差不多了,完全隐藏不可能的,最多加密一下
        36
    zythum   265 天前
    跟老板说,他看到的是前端服务器,不是后端服务器。
    如果再不济,你跟老板打比方说,你要让别人给你寄个快递,但是不给地址,因为要隐藏私人信息,问这个快递通过什么方式发出并且寄到。
        37
    MonoLogueChi   265 天前 via Android
    楼上说的 CDN 都是隐藏 IP,接口基本无法隐藏。如果是需要反爬虫的话,可以到网上看看那些奇葩的反爬虫总结
        38
    huijiewei   265 天前 via iPhone
    做个中间代理嘛

    前端后端都用 websocket 连中间代理

    中间代理的地址用第三方服务发布

    一个小时换一次 就是 IP 蛮贵的
        39
    ericgui   265 天前
    @qiayue
    @jswh
    @huijiewei

    这三位大佬都提到了 websocket,应该可行。我也遇到类似问题,需要解决。mark 一下
        40
    hacklele   265 天前
    CDN 就可以隐藏。我的就用 CDN 隐藏。简单方便。
        41
    swkl86   265 天前   ♥ 2
    一个之前案例,仅供参考

    背景:

    域名 a.com 10.0.0.2 (前端), b.com 10.0.0.3 (接口), ab 同内网

    a 本机绑定 host:10.0.0.3 b.api.com

    a 反向到当前 a 二级目录或者二级域名,nginx 拦截处理,也就是你们说的什么负载

    请求是直接转发还是中间再加个什么代理或通信端口层自己看

    例如我是直接 开了个转发端口 b.api.com:998

    b 机器绑定 a 机器的指向域名(如果没有用 ip )

    这样也就是你所说的隐藏后台业务服务器

    梳理下就是

    a.com/login --拦截或处理-->> a.com/api/login --数据转发-->> b.api.com:998/login

    效果大概如上

    然后,对于如上方案,后面被 pass 了,从安全角度来说,确实做到了隐藏后端
    只是我感觉吧,好麻烦,中间好几层消耗,太恶心了,没啥必要,纯粹增加时间和资源没什么意义

    然后目前采用的做法是

    前端-》中间处理层 -》后端

    中间处理层与后端采用 rsa 通信,每 10 分钟更换通信 token

    前端和中间层肯定有个基本的加密,例如你们常说的 jwt? 我是自己实现个内部算法

    前端和中间处理层是一台服务器,后端是独立另外一台服务器

    中间和后端的数据库不同

    中间层放的是一些基础数据,后端放的是敏感数据

    中间层往往是一个前端接口对应后端 n 个接口,最高的有 8 个接口对应一个前端接口

    然后和楼上说的,你前端域名再走次 cdn

    嗯,某种意义上来说,基本做到了完全隐藏你后端业务(大概,嗯是的)

    当然,这套方案落下来,个人还是感觉好恶心,还在考虑其他优化方案,望大佬指点(递阔洛)
        42
    viztorix   265 天前
    前端服务器转发一下咯 hh。不过转发的区别在哪儿?除了不暴露真实 ip 意外?假装自己很安全。hhhh
        43
    tempdban   265 天前 via Android
    可以再搞一个客户端做 api 隐藏 后端 ip 地址就变成 localhost
        44
    Leigg   265 天前 via iPhone
    反爬参考商标网
        45
    haimall   265 天前 via Android
    做个假 api,调用真 api。 类似反代?
        46
    killerv   265 天前
    隐藏后端信息是什么意思?如果是为了隐藏真实 ip,走 CDN 可破。如果是隐藏接口地址,那就用 #4 的方法
        47
    toma77   265 天前
    golang midware
        48
    lostsquirrelX   265 天前
    nginx 反向代理
        49
    v2chou   265 天前
    谁提的 没看到那个手机壳被打的视频吗
        50
    YangXiaoming   265 天前
    没看到那个手机壳被打的视频吗?
        51
    dorothyREN   265 天前
    内网通信喽,暴露了又能怎样
        52
    ala2008   265 天前
    API 地址是指 URL ?
        53
    koalli   265 天前
    做反代或者 cdn 只是隐藏了真实的 api 地址吧,但是实际上这个做了反代或者 cdn 的本身就是个可以提供服务的 api 吧。。
    看起来并不能解决隐藏 api 地址这个需求,感觉 WebSocket 靠谱点。
        54
    michaelcheng   265 天前
    微服务下的架构,一般都用 API Gateway (网关),所有的后端服务都走网关,由网关控制真实的服务地址,外部能看到只是这个网关的地址。

    前一阵子,刚用 kong 实践了下,https://konghq.com/kong-community-edition/
        55
    zhzer   265 天前   ♥ 1
    @mcfog 软件工程:领导攻防
        56
    killer007   265 天前
    前端使用 websocket 不会暴漏地址吗?
        57
    simple11   265 天前
    有过相同经历- -。 因为要控制很多权限,最后选择了 node.js 中间层做鉴权 + 转发。
        58
    bombless   265 天前 via Android
    怕安全问题就搞反向代理吧,你总得有个地方可以连
        59
    slgz   265 天前
    阿里云有防火墙, 可以做到地址隐藏..
        60
    cnbobolee   265 天前
    具体要隐藏什么东西?
        61
    reus   265 天前   ♥ 2
    居然还有说 websocket 不暴露地址的…… websocket 握手不就是 HTTP ?后续通讯不是 HTTP ?
        62
    killer007   265 天前
    @reus 就是啊, 首先前端使用 ws 怎么隐藏地址!
        63
    Radom   265 天前
    老板懂些皮毛的技术真可怕
        64
    artandlol   265 天前
    多台服务器做 HAProxy+keepalive
        65
    artandlol   265 天前
    @michaelcheng 你觉得微服务哪个才是未来 比如 knative keubeless kong fission
        66
    glaucus   265 天前
    隐藏接口那你怎么请求?你怎么请求我就可以怎么请求,成本的问题而已
        67
    reus   265 天前
    打就行了。
        68
    Humorce   265 天前
    把后端服务器搬到老板家,每一次 API 请求需要经过老板按回车才能返回结果。
        69
    terence4444   265 天前 via iPhone
    反代转发即可
        70
    4357   265 天前
    服务端渲染
        71
    simonguo   265 天前 via iPhone
    隐藏的目的是什么?
        72
    yulon   264 天前
    只是骗老板的话,你把“ API URL + 随便随机字符串”用 Base64 编码一下当 URL,然后后端解码再把随机字符串去了得到真 URL。
        73
    lfzyx   264 天前
    中间加个 nginx 反向代理
        74
    1423   264 天前
    没有人提 tor 啊。。
    匿名访问 /匿名建网站,就用 tor 呐
    还有 i2p
        75
    ToT   264 天前
    没有做过相关的 web 开发,隐藏后端信息目的是什么呀?是防止被攻击 和 防止接口随便调用?
        76
    ihciah   264 天前 via iPhone
    你们老板可能想要一个 flash …
        77
    wynemo   264 天前
    在机房里用布把服务器盖上。
        78
    abcbuzhiming   264 天前
    @ericgui websocket,别人抓个包里就暴露了
    只要提供服务,就不可能隐藏、别的不说,这老板有没有说清楚做到什么叫隐藏?看不见吗?这不可能的好吗
        79
    iicanf   264 天前 via Android
    打一架,fight fight fight
        80
    myself659   264 天前
    @1423 tor 部署有难度吧 i2p 在数字加密货币有应用
        81
    wizardoz   264 天前
    @cszhiyue 全站加速就是 API 的 CDN,到底能不能加速不知道,但是 LZ 想要的隐藏后端是做到了。
        82
    Antidictator   264 天前
    @iicanf #79
        83
    chengyiqun   264 天前
    反代啊
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2733 人在线   最高记录 5043   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 26ms · UTC 12:17 · PVG 20:17 · LAX 05:17 · JFK 08:17
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1