水木社区手机版
首页
|版面-编程技术(Programming)|
新版wap站已上线
返回
1/1
|
转到
主题:前后端分离的项目如何阻止未经认证的前端访问
楼主
|
iwannabe
|
2023-05-12 10:58:04
|
展开
比如我在本地起一个前端,连接生产的后端,这样就可以实现一些原来系统不提供的功能
尤其是开源的代码,怎么防止这种情况发生呢
--
FROM 119.139.196.*
2楼
|
iwannabe
|
2023-05-12 11:33:27
|
展开
没有用,后端暴露的api都可以访问,目前想到的是除了限制refer,还没有想到其他方案
当然,如果权限完善的话,也不是什么大问题
【 在 GoGoRoger 的大作中提到: 】
: 一般写nginx规则吧,然后后端写一些简单的校验啊
: ※ 来源:·水木社区
http://www.mysmth.net
·[FROM: 123.121.150.*]
--
FROM 119.139.196.*
4楼
|
iwannabe
|
2023-05-12 13:29:45
|
展开
大部分框架分功能权限和数据权限,功能权限是在数据库屏蔽前端的菜单来实现的。
而我自己如果跑一个前端,就可以绕过功能权限,
【 在 RuralHunter 的大作中提到: 】
: 是我误解了什么?这不就是后端基本的权限系统要干的事?
--
FROM 119.139.196.*
9楼
|
iwannabe
|
2023-05-13 00:41:33
|
展开
当然是你已经在后端有用户了,
前后端分离的项目,你前端起在哪里都可以
【 在 hgoldfish 的大作中提到: 】
: 有这种后端?难道不都是在后端判断一下当前登录的用户角色,返回 401 ?
--
FROM 120.229.207.*
17楼
|
iwannabe
|
2023-05-15 01:17:43
|
展开
你根本没了解需求
【 在 Madlee 的大作中提到: 】
: 简单说一下吧,这个技术至少30年前就已经很成熟了,也一点都不复杂。脑子正常的框
: 架都会采用,你非要选那些脑子不正常的那也确实没办法。
: 1. 使用https通讯,防止当中有人偷窥,这个没有什么好说的。
: 2. 登录过程,用户通过用户名/密码等等验证方式登录,登录成功,后端发一个随机数
: (学名session_id)给前端,前端要保存这个数到cookies里。后端会把这个随机数和你
: 登录的账户存到数据库/文件/redis里。由于前端只有这么个随机数,所以无法猜出和后
: 端用户的对应关系。
: ...................
--
FROM 120.229.207.*
19楼
|
iwannabe
|
2023-05-15 17:57:55
|
展开
了解前后端分离的架构你就知道,所谓前端,某个功能就是访问一堆后端接口的集合。认
证后,通过jwt返回一个token,然后后续的接口访问都带上这个token来做认证。
你在本地启动一个前端,使用分配给你的普通权限账号,就和访问生产前端一样的效果。
但是某些功能权限的实现是通过屏蔽某些前端菜单来实现的,所以你可以通过修改前端来
访问这些隐藏的功能,当然在数据权限完备的情况下,你确实产生不了什么危害,但是仍
然可能存在安全隐患不是。
你可以想像自己这个前端是postman的接口集合。
这是chatgpt方案:
为了防止本地启动的前端代码访问生产环境的后端,可以考虑以下几种方案:
CORS(跨域资源共享):通过在后端服务器上配置 CORS,只允许指定的前端域名来访问
后端接口。这样即使本地启动的前端代码想要访问生产环境的后端,也会因为跨域问题而
无法访问。
API 网关:将所有的后端接口都通过 API 网关暴露出去,并在 API 网关上设置访问控制
策略,只允许指定的前端域名来访问。这样即使本地启动的前端代码想要访问生产环境的
后端接口,也会被 API 网关拦截。
OAuth2:使用 OAuth2 认证授权框架,将前端和后端分别注册为不同的 OAuth2 客户端,
并且分别为它们分配不同的客户端 ID 和密钥。在 OAuth2 服务端上设置访问控制策略,
只允许使用正确的客户端 ID 和密钥来访问相应的后端接口。这样即使本地启动的前端代
码想要访问生产环境的后端接口,也需要正确的客户端 ID 和密钥才能访问。
【 在 hothail 的大作中提到: 】
: 那你可以重新阐述你的需求
: 如果需求是“安全”,上面给的建议基本都 中规中矩/至少不离谱
: 大家的建议集中在改造后端上这实际上就是一种共识,“前端是不靠谱的,不安全的,
: 包括前端的代码”
: ...................
--
FROM 119.139.198.*
23楼
|
iwannabe
|
2023-05-16 16:20:30
|
展开
换个说法,怎么禁止postman直接调试生产环境的后端,懂了吗
【 在 hothail 的大作中提到: 】
: 1,你的需求是什么就说直接,这么多字没看出来期望结果是什么
: 2,我天天写的就是这个东西,虽说不敢说了解所有的类型,但常见还是知道,实践过
: 的
: 3,你提到“token验证”应该包括权限,也就是对某一接口访问的权限验证,有这个就
: 提高安全了
: ...................
--
FROM 119.139.197.*
1/1
|
转到
选择讨论区
首页
|
分区
|
热推
BYR-Team
©
2010.
KBS Dev-Team
©
2011
登录完整版