【发布时间】:2016-09-06 02:51:18
【问题描述】:
关于 OAuth2 Key/Secret 的 Github API docs 状态:
这应该只用于服务器到服务器的场景。不要将您的 OAuth 应用程序的客户端密码泄露给您的用户。
我想了解这会带来哪些安全风险,因为我已经看到一些 Web 应用程序使用前端脚本来查询 API 并传递客户端 ID 和客户端密码以利用额外的速率限制。
【问题讨论】:
标签: github-api
关于 OAuth2 Key/Secret 的 Github API docs 状态:
这应该只用于服务器到服务器的场景。不要将您的 OAuth 应用程序的客户端密码泄露给您的用户。
我想了解这会带来哪些安全风险,因为我已经看到一些 Web 应用程序使用前端脚本来查询 API 并传递客户端 ID 和客户端密码以利用额外的速率限制。
【问题讨论】:
标签: github-api
如“What's the benefit of the client secret in OAuth2?”中所述:
请求访问令牌的应用必须知道 client secret 才能获得令牌。这可以防止未经授权使用令牌的恶意应用程序获得有效的访问令牌。它没有说明任何有关对用户进行身份验证的内容,而是用于授权应用程序请求访问令牌。
网络应用使用客户端机密,因为它们代表着巨大的攻击媒介。
假设有人毒化了一个 DNS 条目并设置了一个“相似”的流氓应用程序,这种并列可能几个月都不会被注意到,因为这个中介会吸收大量数据。客户端机密应该可以减轻这种攻击向量。由于sensitive nature of the client secrets,客户端机密不用于其他类型的流。
例如,您不能在 JavaScript 或桌面应用程序中使用它们,这两者都可以被反编译、检查、查看源代码、调试等。服务器理论上是不会被窥探的,因此客户端密码比它更容易受到攻击在桌面应用上
【讨论】: