React HTTP 请求问题

2022-01-10 21:14:06 +08:00
 wudaown

各位大佬,

目前在开发某项目,希望后端不能被外网访问

前端和外网是通的,可以访问

前端的机器和后端机器在同一个内网

现在希望用户访问前端后由前端的机器发起请求而不是从用户网络发起请求。

大佬们 这个能做到吗。。

开发完了 今天测试才想起来网络请求是从用户网络出去的。。这我就很尴尬了。。

3232 次点击
所在节点    前端开发
59 条回复
wudaown
2022-01-10 22:16:36 +08:00
我们怕的并不是用户,甚至这套东西没有任何数据。
我们怕的是后端有漏洞,然后因为地址暴露在外网,被人直接把交易系统关掉
wudaown
2022-01-10 22:17:59 +08:00
@izoabr #40 我去看看服务端渲染吧。


@flyhaozi
@rioshikelong121
@izoabr 非常感谢各位的耐心解答
izoabr
2022-01-10 22:19:37 +08:00
@wudaown #41 暴露在外面怕啥的,只要是实名用户,行为记录详细一点,不行就顺着网线找他去呗
slmaaw
2022-01-10 23:30:28 +08:00
ssr 可解 其实就是起个 node 中间层 用户访问中间层 中间层调用 api
wudaown
2022-01-10 23:51:34 +08:00
@slmaaw ssr 刚才试过了,还是暴露了 api url
wudaown
2022-01-10 23:52:02 +08:00
@slmaaw #44 或者说我少了中间层,如果可以的话 可以麻烦你详细说一下吗 谢谢
crs0910
2022-01-11 00:03:27 +08:00
@wudaown 不要 ssr ,直接改成废掉 api 的方式,全部页面改用服务端渲染。
这样等于重做。
而且人家照样可以通过页面解析出数据。只不过只能拿到你页面用到的数据。
假设你是因为 api 会暴露比你这个 react 应用用到的更多的数据,那你可以搞一个 node 后端程序包装一下你原来的 api ,只提供前端会用到的数据。
crs0910
2022-01-11 00:05:34 +08:00
@wudaown 你可以说清楚为啥需要屏蔽别人访问 api ,那别人回答的时候就不用猜
lyoe
2022-01-11 03:17:03 +08:00
LZ 是觉得接口容易被抓包吧。那就只有自定义通信协议了,可以看看闲鱼怎么做的。
jguo
2022-01-11 09:06:57 +08:00
感觉你要的是 api gateway
xujiahui
2022-01-11 10:15:57 +08:00
@wudaown #41 感觉这跟前端无关啊,怕后端有漏洞,这应该是后端和运维去关心的事呢,就算前后端都没问题,你只要有个主机 ip 地址,如果系统或用到的一些服务有漏洞别人一样能攻击,而且这种情况应该更多,现在应该很少通过找后端 url 请求的漏洞了吧
jason94
2022-01-11 10:23:02 +08:00
不管怎么搞,请求总是从客户端(浏览器)发起的,你想不直接暴露后端服务器,那肯定是在中间加一层。
用 nginx 转发或者套个 CDN 可以解决。
darknoll
2022-01-11 10:29:11 +08:00
访问后端接口不需要 token 啥的吗
zhwithsweet
2022-01-11 11:18:58 +08:00
这么说吧,做不到!
只要能用浏览器访问,都是能伪造的。

怎么可能又让前端访问,又不让前端访问呢??
www5070504
2022-01-11 11:36:03 +08:00
你前端代码的执行是在用户浏览器上 不让外网访问 用户端怎么请求数据啊...
fangcan
2022-01-11 13:11:01 +08:00
看了下没怎么明白? 可不可以后端服务器加白名单,只能 nginx 所在的服务器 ip 才有权限访问
Longerrrr
2022-01-11 13:24:33 +08:00
把数据全放前端不就没后端了吗[doge]
vipppppp
2022-01-11 15:58:03 +08:00
除非服务器渲染,否则就是几层 nginx 的问题了。。。
tagtag
2022-01-11 16:33:06 +08:00
react 不是 client ,浏览器才是,只要是浏览器能访问的,其他的 http client 一样可以访问,所以这个需求是不可能实现的。

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

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

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

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

© 2021 V2EX