【问题标题】:Passing client secret to users in Github api在 Github api 中将客户端密码传递给用户
【发布时间】:2016-09-06 02:51:18
【问题描述】:

关于 OAuth2 Key/Secret 的 Github API docs 状态:

这应该只用于服务器到服务器的场景。不要将您的 OAuth 应用程序的客户端密码泄露给您的用户。

我想了解这会带来哪些安全风险,因为我已经看到一些 Web 应用程序使用前端脚本来查询 API 并传递客户端 ID 和客户端密码以利用额外的速率限制。

【问题讨论】:

    标签: github-api


    【解决方案1】:

    如“What's the benefit of the client secret in OAuth2?”中所述:

    请求访问令牌的应用必须知道 client secret 才能获得令牌。这可以防止未经授权使用令牌的恶意应用程序获得有效的访问令牌。它没有说明任何有关对用户进行身份验证的内容,而是用于授权应用程序请求访问令牌。

    网络应用使用客户端机密,因为它们代表着巨大的攻击媒介。
    假设有人毒化了一个 DNS 条目并设置了一个“相似”的流氓应用程序,这种并列可能几个月都不会被注意到,因为这个中介会吸收大量数据。客户端机密应该可以减轻这种攻击向量。

    由于sensitive nature of the client secrets,客户端机密不用于其他类型的流。
    例如,您不能在 JavaScript 或桌面应用程序中使用它们,这两者都可以被反编译、检查、查看源代码、调试等。服务器理论上是不会被窥探的,因此客户端密码比它更容易受到攻击在桌面应用上

    【讨论】:

    • 务实地说,您的回答并没有指出简单的前端请求姿势的安全漏洞;假设 OAauth 应用程序没有拥有敏感数据的授权用户,只有公共只读访问权限。
    猜你喜欢
    • 1970-01-01
    • 2017-04-02
    • 1970-01-01
    • 2019-09-30
    • 2019-04-15
    • 1970-01-01
    • 2019-06-03
    • 1970-01-01
    • 2016-01-10
    相关资源
    最近更新 更多