facebook - client_id 的 OAuth2 安全注意事项

标签 facebook security api authentication oauth-2.0

在移动平台上使用带有 OAuth2 的用户代理流程时,授权服务器无法验证应用程序的 client_id。

因此,任何人都可以通过复制 client_id 来冒充我的应用程序(从而代表我获取所有访问 token ),这适用于 Facebook、Foursquare...

这不是由 OAuth2 管理的?或者我错过了什么?

对于Web应用程序(Web服务器流程),访问 token 存储在服务器端,并使用 key 对客户端进行身份验证。

最佳答案

没有好的答案。 native 应用程序回调通常通过自定义注册的 URI 方案发生(例如:回调重定向 URI 类似于:myapp://oauth?code=xyz123)。不幸的是,任何应用程序都可以声明对给定协议(protocol)方案的所有权并接收回调。

这个问题与尝试锁定任何具有“可信客户端”的协议(protocol)非常相似。想一想 IM 网络将第三方客户端拒之门外的斗争(2000 年代初期)。最终他们放弃了 - 因为无论部署什么客户端和协议(protocol)端点都可以由第 3 方开发人员进行逆向工程。

注意:OAuth WG 邮件列表上也有一些关于此主题的积极讨论:http://www.ietf.org/mail-archive/web/oauth/current/msg08177.html

关于facebook - client_id 的 OAuth2 安全注意事项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8730590/

相关文章:

facebook - 如何获取 facebook 共享,例如,仅使用图形 api 的 url 的评论计数(以非弃用的方式)

spring - 微服务中的授权 - 如何使用 ACL 处理域对象或实体级别的访问控制?

database - 城市到大都市区

javascript - if else 在react.js中(基本)

java - Oracle JDK8中的JSSE是否实现了TLS Fallback SCSV?

c++ - Windows 文件权限作为字符串

iphone - FB登录策略,坚持什么?

ios - 安装升级的iOS应用后,如何找出点击了哪个Facebook移动安装广告

iphone - 在 Iphone 中邀请 facebook 好友

security - 如何使我的 API 私有(private)但可由移动应用程序使用?