• 请不要在回答技术问题时复制粘贴 AI 生成的内容
ns2250225
V2EX  ›  程序员

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

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


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

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

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

    一个小时换一次 就是 IP 蛮贵的
    ericgui
    ericgui
    Aug 2, 2018
    39
    @qiayue
    @jswh
    @huijiewei

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

    背景:

    域名 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

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

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

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