将OAuth2用户代理流用于移动平台时,授权服务器无法验证应用程序的client_id。
所以,任何人都可以通过复制client_id模仿我的应用程序(并代表我获取所有访问权限),这适用于Facebook,Foursquare,......
这不是由OAuth2管理的?或者我错过了什么?
对于Web应用程序(Web服务器流),访问令牌存储在服务器端,客户端使用密钥进行身份验证。
答案 0 :(得分:4)
没有好的答案。本机应用程序回调通常通过自定义注册的URI方案发生(例如:回调重定向URI类似于:myapp:// oauth?code = xyz123)。不幸的是,任何应用程序都可以声明对给定协议方案的所有权并接收回调。
此问题与尝试使用“受信任的客户端”锁定任何协议非常相似。想想IM网络争夺第三方客户的战斗(2000年初)。最终他们放弃了 - 因为无论客户还是什么?部署的协议端点可以由第三方开发人员进行逆向工程。
注意:OAuth WG邮件列表上还有一些关于此主题的积极讨论:http://www.ietf.org/mail-archive/web/oauth/current/msg08177.html
答案 1 :(得分:2)
通常,client_id与网站的网址相关联 - OAuth响应/重定向将仅发送给注册的网址。因此,攻击者无法在自己的网站上收到请求的结果(除非您和攻击者页面在同一个域中)。