2

我正在为我创建的 API 实施 oauth2 解决方案,我正在努力应对潜在的不安全感(或者至少我的理解)。

仅生成一个令牌并将其用作端点请求的身份验证凭据是否正确。是什么阻止了潜在的暴力攻击,攻击者只是将令牌提交给 API,希望令牌有效并正在使用中?

我可能误解了一些东西,但我无法在我的生活中得到它是什么。

4

2 回答 2

2

当然,令牌应该是难以想象的。例如,它们不应该是简单的连续整数。令牌长度也没有限制。基本上有两种选择:

1)构建一个使用您自己的密钥加密的长令牌(注意:它不必长,但它会因为密码学会隐含地使其变长)。您可以在返回时检查令牌是否真的属于您,因为您是唯一可以加密和解密这些令牌的人。

2) 构建也存储在数据库中的令牌,并且相当难以创建,因此您将检查数据库中是否存在令牌。

您也可以混合使用这两种方法。您还应该为令牌添加一些过期时间(在第一种情况下嵌入其中,或者在第二种情况下将令牌放在数据库中)。

于 2012-12-28T13:58:49.293 回答
2

OAuth 2.0 中最容易受到暴力攻击的授权类型之一是资源所有者密码凭证类型。在这种情况下,黑客可以访问客户端凭据(clientId 和密码),他/她只需要资源所有者(用户)凭据(用户名和密码)。Java - Spring Security 中描述了一个身份验证实现模型可以避免这个问题。

于 2015-03-31T13:18:05.067 回答