首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Spring Boot中隐藏其他用户信息

如何在Spring Boot中隐藏其他用户信息
EN

Stack Overflow用户
提问于 2018-10-23 19:52:35
回答 3查看 336关注 0票数 0

我有一个spring boot应用程序。

用户可以登录到应用程序,也可以编辑自己的配置文件。

问题是,用户也可以编辑其他用户的个人资料。

例如,用户自己的个人资料编辑链接:

代码语言:javascript
复制
http://localhost/users/edit/1001

但他也可以接触到其他用户的个人资料,比如;

代码语言:javascript
复制
http://localhost/users/edit/2001
http://localhost/users/edit/10
http://localhost/users/edit/5000

您是否知道预防此问题的最佳实践是什么?

EN

回答 3

Stack Overflow用户

发布于 2018-10-23 20:11:45

http://localhost/users/edit/1001 url中的id(1001)应该与登录用户的id(用户主体id)相同,然后只允许编辑,否则403访问被拒绝的页面您可以重定向。

您还可以使用PreAuthorize注释,如下所示。

代码语言:javascript
复制
@PreAuthorize("id == authentication.principal.id")

看一看thisthis

票数 2
EN

Stack Overflow用户

发布于 2018-10-23 19:57:09

您可以做的是,您可以使用主体从数据库获取user_id,并将其与传递的user_id进行比较,如果两个if都不匹配,则将用户重定向到unauthorized页面。

票数 1
EN

Stack Overflow用户

发布于 2018-10-23 20:21:09

我不会向用户公开/edit端点……我会创建一个/profile/edit端点,并始终路由到当前登录的用户,并将用户编辑留给管理仪表板(一个内部工具)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52948401

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档