【发布时间】:2019-05-12 08:30:46
【问题描述】:
假设我的应用程序中有 2 条路由:
POST /login -> {token: some_token}
返回令牌以访问第二个功能的身份验证路由POST /divide -> {result: x / y}
模拟功能divide(x: int, y: int)的路由,由第一条路由的令牌持有者保护。同样在这个函数中我有一些验证器,即x和y必须是整数,y必须不等于 0,如果其中一个条件失败,它会返回 400: BadRequest
所以,我的问题是,如果用户没有为路由/divide 提供令牌承载和参数,我应该返回 401 还是 400?
有两件事让我担心
- return 400: 用户可以通过发送找出我的 API 结构 空正文和解析响应,例如发送空正文并获取 {x: 必须提供,y: 必须提供},然后发送 x=abc,y=bca 并得到 {x: 必须是整数, y: 必须是整数}等...
- 返回 401:用户可以通过发送大量的 DDoS 我的应用程序 随机令牌,因此对于每个请求,应用程序应检查令牌是否有效的存储
在这种情况下,最佳做法是什么?
谢谢。
【问题讨论】:
标签: rest validation bearer-token