Android 具有隐式授权的OAuth应用程序中的客户端模拟
从OAuth草稿中,隐含: 在隐式授权流期间发出访问令牌时 授权服务器不验证客户端 现在,让我们假设:Android 具有隐式授权的OAuth应用程序中的客户端模拟,android,ios,facebook,security,oauth,Android,Ios,Facebook,Security,Oauth,从OAuth草稿中,隐含: 在隐式授权流期间发出访问令牌时 授权服务器不验证客户端 现在,让我们假设: 我有一个Android或iOS应用程序 我使用OAuth隐式授权来获取对某些资源的访问令牌。这将通过web视图实现 用户授权我的应用程序访问某些资源。这意味着: 他在拥有资源的原始服务中经过身份验证 网络视图将有一个他在那里的会话 有一个恶意Android或iOS应用程序正试图使用我在应用程序()中使用的相同客户端id获取访问令牌。他还拥有相同的redirect_uri,在本机应用程序中可以
客户端id
获取访问令牌。他还拥有相同的redirect_uri
,在本机应用程序中可以是类似于fb://blablabla
的任何东西客户端id
的访问令牌。由于3.1和3.2的原因,这是因为用户甚至没有意识到他正在使用的客户端id
,这是我的有什么办法可以防止这种情况发生吗?您的第一句话: 恶意客户端可以模拟其他客户端并获得访问权限
对于受保护的资源,如果模拟客户端失败,或者是
无法对其客户端凭据保密
我想这是唯一的办法。此外,也许你可以对你的客户ID进行加密,加密存储并解密,然后再对用户进行身份验证。这是一个老问题,但我还是要尝试一下。 隐式流本质上是一种不太安全的流,只有当您无法像在单页应用程序中那样安全地保存客户端id和密码并执行代码流(混合流)时,才应使用隐式流。当使用移动应用程序和/或带有服务器端的web应用程序时,建议使用代码流来防止此类模拟 另一方面,我不是移动开发者,所以我不知道“神奇链接”是如何工作的,但我认为如果两个应用程序定义相同的url(重定向uri),它将失败,但这只是我值得检查的理由