OAuth 是否实际上意味着允许应用像我一样做所有事情?

信息安全 oauth
2021-09-11 06:14:15

一些 OAuth 提供商(如 Google 或 Facebook)只授予第三方应用有限的权限,并且他们在授权页面上明确说明。例如,他们说一个应用程序可以看到你是谁和你的朋友列表,但不能在墙上发帖。等等。

不过,并非所有提供商都这样做。对于其中一些,一旦用户授权应用程序并且提供者发布令牌,显然你可以做任何事情除非用户明确撤销,否则消费者可以保留令牌并作为该用户做任何喜欢的事情 -多年(就像 JIRA 一样)。

这个对吗?如果 API 允许 3rd 方应用程序无边界地完全模拟您,您将如何处理这种疯狂行为?

Atlassian 的相关文档(对于 JIRA 示例):https ://confluence.atlassian.com/display/APPLINKS/Configuring+authentication+for+an+application+link

1个回答

是的...如果您允许它这样做。

OAuth 访问令牌的权力与您赋予它的权力一样多。通常,当您使用 OAuth 提供程序登录时,系统会询问您希望通过该访问令牌授予多少权限。如果您决定授予对所有内容的完全访问权限,那么是的,接收访问令牌的应用程序可以像您一样执行任何操作。

这类似于将你家的一套临时钥匙交给你在路上遇到的一个完全陌生的人。尽管如此,可取之处在于它是暂时的(通常)并且您可以撤销它。这样,OAuth 仍然比在您希望第三方应用程序访问您的信息时简单地将您的用户名/密码提供给它要好得多。

OAuth 仍然保护您的密码,并且与使用您的真实密码相比,第 3 方应用程序在使用访问令牌时几乎总是受到更多限制。这就是 OAuth 大放异彩的地方以及创建它的原因;在您同意的情况下,在有限的时间内对您的私人信息进行有限的访问(通常是您撤销该访问的能力)。

结论

归根结底,如果您决定信任恶意应用程序,那么没有什么可以拯救您。但是,通过 OAuth 信任恶意应用程序比提供密码要好得多。