关于OAuth2密钥/密钥的Github API docs州:
这应仅用于服务器到服务器方案。不要将OAuth应用程序的客户机密泄露给您的用户。
我想了解这会带来什么样的安全风险,因为我看到有几个Web应用程序使用前端脚本来查询API并传递客户端ID和客户端密钥以利用额外的速率限制。
答案 0 :(得分:0)
如“What's the benefit of the client secret in OAuth2?”中所述:
请求访问令牌的应用必须知道 client secret 才能获得令牌。这可以防止未经授权使用令牌的恶意应用获取有效的访问令牌。它没有说明对用户进行身份验证的任何内容,而是用于授权应用程序请求访问令牌。
Web应用程序使用客户机密,因为它们代表了巨大的攻击媒介 让我们说有人中毒一个DNS条目并设置一个流氓应用程序“相似”,这个并置数据可能几个月没有被注意到,这个中介吸收了大量的数据。客户机密被认为可以缓解这种攻击媒介。
由于sensitive nature of the client secrets,客户机密密码不会用于其他类型的流程 例如,您不能在JavaScript或桌面应用程序中使用它们,这些应用程序都可以反编译,检查,查看源代码,调试等。服务器在理论上是安全的,不会被窥探,因此客户机密钥不像它那样容易受到攻击是在桌面应用