database - 如何防止访问数据库中其他用户的数据
问题描述
假设用户登录到应用程序并想要检索与他们的个人资料关联的一些数据。应用程序使用他们的用户 ID 向后端执行 REST 调用,后端执行 SQL 查询(SELECT x FROM y WHERE user_id = '...')。
这里的问题是,如果我知道其他人的用户 ID,我可以拦截 REST 调用并将他们的 ID 插入其中,从而访问他们的数据。
如何避免这个问题?
(这个问题与How to prevent user to access other users' data?非常相似,但已经 5 年了,所以我想再试一次)
解决方案
因此,在这种情况下,您有一个特定对数的加密来发送用户 ID 并在 REST 服务应用程序上对其进行解密,然后在后端的 USERID 列中使用它。另一种可能的解决方案是加密在 REST url 中传递的列值和用户 ID 值!
推荐阅读
- sql - 为什么我仍然得到空值?
- c# - 如何仅将外部身份验证与 asp.net 核心身份一起使用
- pyomo - 在总和中显式建模下限和上限
- python - 设置 SQLALCHEMY_POOL_RECYCLE 时,如何在 SQLAlchemy 中签出和释放连接?
- java - 如何在 weblogic.xml 中创建自定义 ManagedScheduledExecutorService 并在 java 代码中使用它?
- php - 在 laravel formRequests 中获取输入值
- angular - 如何阅读和提取pdf中的文本?
- firemonkey - 更改 Firemonkey TMemo 组件中选定子字符串后面的背景颜色
- c++ - mysqlcppconn 程序中的内存泄漏
- javascript - 如何更新 JSTREE 中的数据属性?