gpt4 book ai didi

android - OAuth2 不应该将用户重定向到外部浏览器,而不仅仅是将登录屏幕加载到 WebView

转载 作者:可可西里 更新时间:2023-11-01 04:52:32 25 4
gpt4 key购买 nike

在移动设备上处理 OAuth 的正确方法是什么?安卓、iOS 等..正如我所看到的,大多数应用程序只是将登录屏幕加载到 WebView 等应用程序内浏览器中。它实际上不是在践踏 OAuth 的整个原则吗?因为作为开发人员,我可以轻松读取用户在文本字段中输入的密码。有没有办法使用 startActivityForResult 模式(尤其是在 Android 上)做到这一点?因为当用户在主系统浏览器中输入他们的登录名和密码时,这应该是一种更可靠的方法来维护应用程序的安全性和可信度?

最佳答案

在应用和浏览器之间传递数据

您必须在用户登录后从页面读取响应(重新加载的 url),以获取用于请求身份验证和刷新 token 的授权代码。如果(默认)浏览器必须负责为您返回授权代码,那么它必须(记录)实现接收此类结果的此类 Intent 。

让浏览器知道您应用的凭据

还有另一个更严重的问题 - 通常您使用应用的凭据(客户端 ID + 客户端密码)请求授权/身份验证。您将它们作为参数放在 header 或 url 中的某个位置。您必须将它们提供给浏览器,以便将它们放入请求的 header /url 中。

合并:

当浏览器同时拥有授权码和您应用的凭据时,它可以获得用户帐户的授权/刷新 token ,不仅可以访问它,还可以伪装成您的应用。考虑到这是设备附带的内置浏览器,用户会很平静,因为他可能会信任制造商,因为他正在购买它的设备,但应用程序的开发人员可以信任制造商吗?当用户选择第 3 方浏览器作为默认浏览器和/或卸载内置浏览器时?

简而言之:

用户和开发者都必须信任第 3 方——浏览器,而不是用户信任他/她安装的应用程序

关于android - OAuth2 不应该将用户重定向到外部浏览器,而不仅仅是将登录屏幕加载到 WebView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19589359/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com