按行验证对数据库的 Api 请求

authenticate Api request to Database by row

假设我有一个存储用户订单的数据库Table。

Order.id product user
1 product1 user1
2 product2 user1
3 product2 user2
4 product1 user3
5 product2 user3
6 product3 user3

还有一个 public API 为用户提供他请求的所有订单

我想阻止用户获取其他用户的订单并只允许他们访问自己的订单。

即:

user1只能得到订单1,2

user2只能拿到订单3

user3只能得到顺序4,5,6

我该怎么做?程序的名称是什么?

来自评论:SQL 查询应该 永远不会 在任何上下文中在客户端构建。这样做会带来极其严重的安全漏洞。在对它采取任何行动之前,应验证来自客户端的任何内容。

设计您的应用程序以公开执行 authentication/authorization 请求的服务,然后 查询数据库并返回特定于经过身份验证的用户的数据,或返回数据经过身份验证的用户应该有权访问。

这可能不言而喻,但您还应该执行基本的 validation/sanitization 检查 在您的应用程序中使用诸如参数化 queries/prepared 语句之类的东西来进一步保护数据库中的数据免受未经授权的访问。