oauth-2.0 - oauth2 不安全吗?

标签 oauth-2.0 oauth-provider

我正在为我创建的 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/

相关文章:

ruby - 机架 OAuth-2 服务器中的 Web 服务器流

ruby-on-rails-3 - 门卫访问 token

authentication - native 应用程序中第一方身份验证的最佳实践

java - GMail OAuth 身份验证。我是否正确检索 OAuth token ?

c# - Google Api 获取 token 请求返回 invalid_request

java - 在java中实现Oauth1 Provider

ruby-on-rails - Rails 2.3.5 中用于 oAuth2 消费者和提供者功能的 Gem

php - Zend Framework Oauth 提供者

asp.net-mvc - ASP.NET OWIN 使用 Microsoft Live ID 登录 - 无效请求和 Google 重定向 URL 不匹配

node.js - 获取oauth信息后如何将数据发送回客户端