我正在为我创建的 API 实现 oauth2 解决方案,但我正在努力解决潜在的不安全问题(至少是我的理解)。
仅生成一个 token 并将其用作端点请求的身份验证凭据,这是否正确?在攻击者简单地向 API 提交 token 并希望 token 有效且正在使用的情况下,如何阻止潜在的暴力攻击?
我可能误解了一些东西,但我无法理解它是什么。
最佳答案
代币当然应该很难想象。例如,它们不应该是简单的连续整数。 token 长度也没有限制。基本上有两种选择:
1) 使用您自己的 key 构建一个加密的长 token (注意:它不一定必须很长,但它会因为加密技术会隐式地使其变长)。您可以在返回时检查 token 是否确实是您的,因为您是唯一可以加密和解密这些 token 的人。
2) 构建也存储在数据库中的 token ,并且创建起来相当困难,因此您将检查数据库中是否存在 token 。
您也可以混合使用这两种方法。您还应该向 token 添加一些过期时间(在第一种情况下嵌入其中,或者在第二种情况下将 token 放在数据库中)。
关于oauth-2.0 - oauth2 不安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14070516/