【发布时间】:2021-07-20 22:52:06
【问题描述】:
假设我有一个带有 Reddit OAuth2 身份验证的 android 应用程序。我使用我的客户 ID 发起授权请求,并且用户接受同意。现在我得到了授权码,它将通过 HTTP 请求在我的服务器中交换为令牌。此过程将保护我的客户端机密,因为它在我的服务器中,但实际上并没有。任何人都可以通过反编译从应用程序中获取客户端 ID,并向 reddit 发起授权请求,并从我的服务器交换代码以获取令牌。他们甚至不需要知道秘密来获得令牌。
如何保护 API 免受此类滥用(或攻击?)?
有什么方法可以让我的 API 只接受来自我的应用程序的请求并拒绝其他请求(使用 SHA256 等)?
我查阅并研究了 PKCE。但这在这种情况下没有用,因为它只能再次保护代码嗅探/拦截并且只接受原始授权请求发起者。
【问题讨论】:
标签: rest security authentication oauth-2.0 jwt