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

2018-08-01 16:54:45 +08:00
 ns2250225
一个 WEB 项目,浏览器访问的时候,F12 会暴露后端 API 的地址,有没有什么办法可以隐藏这个信息啊,求大神指点 😱,备注:后端接口都做了鉴权,可是老板要求要隐藏后端信息。。。
14945 次点击
所在节点    程序员
83 条回复
swkl86
2018-08-02 06:20:31 +08:00
一个之前案例,仅供参考

背景:

域名 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
2018-08-02 07:30:36 +08:00
前端服务器转发一下咯 hh。不过转发的区别在哪儿?除了不暴露真实 ip 意外?假装自己很安全。hhhh
tempdban
2018-08-02 07:43:40 +08:00
可以再搞一个客户端做 api 隐藏 后端 ip 地址就变成 localhost
Leigg
2018-08-02 08:12:17 +08:00
反爬参考商标网
haimall
2018-08-02 08:18:21 +08:00
做个假 api,调用真 api。 类似反代?
killerv
2018-08-02 08:38:15 +08:00
隐藏后端信息是什么意思?如果是为了隐藏真实 ip,走 CDN 可破。如果是隐藏接口地址,那就用 #4 的方法
toma77
2018-08-02 09:14:52 +08:00
golang midware
lostsquirrelX
2018-08-02 09:20:37 +08:00
nginx 反向代理
v2chou
2018-08-02 09:23:00 +08:00
谁提的 没看到那个手机壳被打的视频吗
YangXiaoming
2018-08-02 09:41:56 +08:00
没看到那个手机壳被打的视频吗?
dorothyREN
2018-08-02 09:44:26 +08:00
内网通信喽,暴露了又能怎样
ala2008
2018-08-02 09:54:50 +08:00
API 地址是指 URL ?
koalli
2018-08-02 10:05:17 +08:00
做反代或者 cdn 只是隐藏了真实的 api 地址吧,但是实际上这个做了反代或者 cdn 的本身就是个可以提供服务的 api 吧。。
看起来并不能解决隐藏 api 地址这个需求,感觉 WebSocket 靠谱点。
michaelcheng
2018-08-02 10:29:51 +08:00
微服务下的架构,一般都用 API Gateway (网关),所有的后端服务都走网关,由网关控制真实的服务地址,外部能看到只是这个网关的地址。

前一阵子,刚用 kong 实践了下,https://konghq.com/kong-community-edition/
zhzer
2018-08-02 10:56:51 +08:00
@mcfog 软件工程:领导攻防
killer007
2018-08-02 10:57:10 +08:00
前端使用 websocket 不会暴漏地址吗?
simple11
2018-08-02 10:57:42 +08:00
有过相同经历- -。 因为要控制很多权限,最后选择了 node.js 中间层做鉴权 + 转发。
bombless
2018-08-02 11:07:06 +08:00
怕安全问题就搞反向代理吧,你总得有个地方可以连
slgz
2018-08-02 11:36:13 +08:00
阿里云有防火墙, 可以做到地址隐藏..
cnbobolee
2018-08-02 11:40:55 +08:00
具体要隐藏什么东西?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/475998

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX