.net - 如何阻止用户使用 JWT 创建自定义 POST 请求?
问题描述
我理解访问令牌的方式是服务器向客户端授予访问令牌,然后客户端会将请求标头中的任何请求连同请求头中的任何请求一起发送回服务器以证明其身份验证/声明。
什么会阻止用户获取他们授予的访问令牌并在 Postman 中自定义 POST 请求的标头中使用它,从而使他们能够将他们喜欢的任何数据添加到数据库中?
有什么办法可以防御这种情况吗?
解决方案
一旦客户端应用程序出现,您就根本无法控制它,而且您是对的,很容易假装是您的应用程序并提出自定义请求。客户端代码中的任何内容都可以由用户更改或复制。
因此,您应该假设所有用户都是邪恶的,并且您在客户端对输入数据进行的任何检查都应该复制到服务器端。
考虑数据输入也是不够的,您还应该检查给定用户是否有权查询他们要求的内容,因为在请求某些数据时更改 id 是微不足道的。特别是当 id 是增量整数时,它们很容易简单地更改 url,而无需靠近邮递员。
推荐阅读
- java - 如何更新 GraalVM?
- laravel - 在 laravel 项目中使用 vue.js vue-notus 模板
- matplotlib - 如何让 jupyterlab 显示 %matplotlib ipympl - 在笔记本的第一次运行中显示?
- javascript - 分别将 FormData 发送到不同的 API
- java - 如何在不锁定 UI 的情况下从 MySQLite 进行 SELECT?
- helix - 如何在 helix 3d c# wpf 中添加阴影
- ignite - 查询远程过滤器内的不同缓存以进行连续查询
- php - 使用 Laravel + Ratchet PHP 启用 TLS 时,JS 客户端出现连接错误 1006
- regex - Golang 匹配字符获取子字符串
- postgresql - 根据与 localtimestamp 和其他列相关的 Date Activated/Date Deactivated 列计算记录状态