Spring Boot如何优雅提高接口数据安全性

本文讨论了如何在Spring Boot中提高接口安全性,通过加密和加签防止数据被恶意篡改。介绍了使用非对称加密算法RSA和对称加密算法AES进行接口参数加密,以及签名验证的过程,确保接口调用的安全性。
摘要由CSDN通过智能技术生成

1.背景

提出一个问题:只做接口功能菜单权限检验还不够,还得做数据权限检验才行,举个例子:用户A有删除某条数据的接口权限,这个接口的参数是传记录id来删除的(ps:平时我们开发接口也是这么做的),后端执行的逻辑就是通过登录信息通过用户认证,然后再判断接口菜单权限,紧接着就执行如下SQL逻辑:

delete from table where id=?

这里的id就是掉接口传递的参数,这时候假如用户B知道了怎么调接口,就根据id自增长的特性随意传id,就会删掉别人的数据,所以这是一个严重的问题,要解决这问题可以像上面说的一样加上数据权限,执行逻辑如下:

delete from table where id=? and user_id = userId

这样就避免数据被别人操作了,也就是加上了数据权限判断,但是却给业务逻辑增加了复杂性同时老接口业务逻辑难以适配,本质上来说web页面上看到的数据就是根据用户角色做过数据隔离的,可以这么理解你能看到哪些数据和你有那些功能菜单操作权限就差不多避免上面所说的情况了,但是保不准懂代码的人使用postman等工具恶意调接口而产生上面的情况,这个问题可以转换为怎么避免

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值