关于publishUserId查询条件的疑问

来源:6-12 文章列表展示【内容管理】

慕勒3498910

2023-01-22

老师,你好。因为是需要查询我的文章列表的数据,因此,下面这个POST请求的接口:http://article.imoocnews.com:8001/article/queryMyList?userId=221224BXAKWK42K4&keyword=&status=0&startDate=&endDate=&page=1&pageSize=10

在Controller层呢,就对userId参数做了非空校验,同时呢,在

Service层也通过下面这段代码来限制了查询条件,就是查询当前登录用户发布的文章列表数据:

criteria.andEqualTo("publishUserId", userId);

但是,我的疑问就在于说,如果有人通过F12,来调用浏览器的调试功能抓到这个接口后,篡改userId的参数值,比如就修改成userId=1001的话,我这边本地模拟了一下这个过程,就可以拿到的是1001这个用户的文章发布数据,这个就有些数据安全隐患在里面了。同时呢,我也思考了一下可能的修改调整方案,但是,比如说用拦截器来做,也好像处理不了,因为拦截器也只是对用户的登录状态可以做验证拦截,就比如类似我说的这个情况下,userId=221224BXAKWK42K4,这个用户确实是已经正常登录我们的系统了,只是在他的账号下,去请求了userId=1001,这个用户的文章数据,这块数据的非法请求的问题,不是特别好解决了。我想是因为本身咱们是课程项目的原因,老师代码这块可能没有针对各种情况都有设计处理,就想问一下老师,一般在更实际的项目中,类似这样的问题,有什么常规的处理方案么?


写回答

1回答

风间影月

2023-01-23

你说的这个情况是无法避免的,你去别的平台f12也是可以获得的。本来就是可以被查看到的。如果不允许查看,接口内部做好权限判断就可以了。

普通数据类查询都是可以通过f12直接修改来获得

0
0

Spring Cloud 进阶 Alibaba 微服务体系自媒体实战

一课收获分布式系统开发,微服务核心技术和中间件企业生产落地

1113 学习 · 896 问题

查看课程