测验:PKCE 与应用对接
PKCE 防范的是哪种攻击?
- 没有签名密钥时伪造令牌
- 利用截获的授权码换取令牌
- 伪造请求的 CSRF 攻击
- 重复使用同一授权码的重放攻击
为什么 code_challenge_method 应避免使用 plain,而选择 S256?
- 因为无需计算哈希,速度更快
- 因为规范只允许 S256
- 因为 challenge 字符串会更短
- 因为 plain 会直接暴露 verifier
为重定向 URI 注册宽泛的通配符会怎样?
- 无需为每个环境单独注册 URI,使用更方便
- 只要该域名下存在一个开放重定向器,令牌就可能被送到攻击者手中
- 该客户端的 PKCE 检查会被关闭
- 无法区分回调,导致 state 失去意义
在刷新令牌轮换机制中,如果旧刷新令牌再次被使用,应如何处理?
- 视为正常,继续刷新
- 静默忽略,不返回任何响应
- 再次签发新的刷新令牌
- 怀疑令牌被盗,撤销整个会话
令牌有效但角色权限不足时,正确的状态码是什么?
- 403 Forbidden
- 401 Unauthorized
- 404 Not Found
- 422 Unprocessable Content
无限期保留 JWKS 缓存会产生什么问题?
- 缓存不断增长,耗尽内存
- 密钥轮换后,所有由新 kid 签名的令牌都无法通过验证
- 每次请求都要重新查询,性能下降
- aud 校验所需的值丢失,导致校验关闭