【发布时间】:2021-06-28 05:02:20
【问题描述】:
我理解访问令牌的方式是服务器向客户端授予访问令牌,然后客户端会将请求标头中的任何请求连同请求头中的任何请求一起发送回服务器以证明其身份验证/声明。
什么会阻止用户获取他们授予的访问令牌并在 Postman 中自定义 POST 请求的标头中使用它,从而使他们能够将他们喜欢的任何数据添加到数据库中?
有什么办法可以防御吗?
【问题讨论】:
标签: .net angular asp.net-core jwt
我理解访问令牌的方式是服务器向客户端授予访问令牌,然后客户端会将请求标头中的任何请求连同请求头中的任何请求一起发送回服务器以证明其身份验证/声明。
什么会阻止用户获取他们授予的访问令牌并在 Postman 中自定义 POST 请求的标头中使用它,从而使他们能够将他们喜欢的任何数据添加到数据库中?
有什么办法可以防御吗?
【问题讨论】:
标签: .net angular asp.net-core jwt
一旦出现客户端应用程序,您就根本无法控制它,而且您是对的,很容易假装自己的应用程序并发出自定义请求。客户端代码中的任何内容都可以由用户更改或复制。
因此,您应该假设所有用户都是邪恶的,并且您在客户端对输入数据进行的任何检查都应该在服务器端进行复制。
仅仅考虑数据输入也是不够的,您还应该检查给定用户是否有权查询他们要求的内容,因为在请求某些数据时更改 id 是微不足道的。尤其是当 id 是增量整数时,它们很容易简单地更改 url,而无需靠近邮递员。
【讨论】:
有效的令牌不会被阻止。
所以你不能阻止一个人拿走令牌并放入“邮递员”。
但它们只能用来调用您的 API。因此,适当的 API 设计可以缓解这个问题。 您可以做的另一件事是为您的应用程序添加不同的权限级别
【讨论】: