Oauth2的token疑问?

发布于 2022-09-07 03:37:05 字数 448 浏览 14 评论 0

1.最近在看oauth2协议的时候, 发现都提到用 账号密码 到服务端换一个token, 之后请求都用token;

总感觉, 这个token此时不就相当于密码了么, 被人拿到后, 还是可以直接使用啊, 虽然有失效时间, 比如微信公众号介绍的,它的access_token是两个小时失效, 但是两个小时之内, 岂不是就相当于 账号和密码 都被人拿到了? 感觉没什么意义啊 拿到你账号和密码1分钟就足够干坏事了, 何况两个小时?

2.另外, 在第一次获取access_token的时候, 不也得发送appid和AppSecret么, 这不也不安全么? 一次发送和每次发送只是降低了一点暴露AppSecret的可能性, 也没感觉安全方面有多好啊?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

燃情 2022-09-14 03:37:05

首先,没有绝对安全的系统,所有的安全机制都只是尽可能增加破解难道,降低风险.
oauth主要解决的是跨域授权问题,比如如果你想使用你的微信账户登录一个第三方应用,不可能直接使用微信账户密码直接进行登录,这样增加了你的账户密码泄漏的可能性,oauth通过以下策略提高安全性.

  • 1.第三方需要验证.

如果你要使用微信oauth,那么你需要去微信申请appid以及appSecret,这个过程需要提供相应的资质,然后oauth提供方会进行审核,降低了恶意第三方通过oauth窃取你信息的可能性.

  • 2.有限的权限控制.

使用oauth时,让你显示的授权具体的操作(scope),如你可以只授权获取账户信息(头像,用户名之类),这样对于oauth提供方来说,机制token泄漏了,你也只能获取到账户信息,不能进行其他的操作,所以风险得到控制.

  • 3.传输加密.

整个oauth流程采用tls加密,会进行证书校验,这样降低了数据传输过程中被篡改或暴露的可能性.

  • 4.token控制.

token可以主动失效,也可以被动调用,当发现token泄漏时,可以很容易进行取消授权,这样token将无法使用.

所以总的来说,oauth不是万精油,完美无懈,但他的确是目前技术体系下这些场景的最好的解决方案.不然怎么能成为标准呢.

话少情深 2022-09-14 03:37:05

假设你做了个应用,需要取用户的微信信息,终端用户要登录微信授权,微信才给你的程序提供token。你用token就可以直接拿用户微信信息了。如果不用oauth,终端用户不是要把微信的用户名密码提供给你的程序?appid和appSecret只是能保证是你的程序发送的token给微信,也就是发给你的token只能你用,否则其他应用拿这个token不是也能取到用户微信信息了?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文