gpt4 book ai didi

android - Android 手机上的 OAuth 安全问题?

转载 作者:行者123 更新时间:2023-11-29 22:26:40 28 4
gpt4 key购买 nike

我正在编写一个将在 Android 手机上运行的客户端应用程序,该应用程序将代表用户与 OAuth 服务器进行交互。我在我的 Web 服务器上运行 OAuth 服务器端代码,用于在与远程 OAuth 服务器握手时维护 OAuth session 详细信息。现在我正在争论如何最好地处理智能手机上的客户端考虑因素。

对于这个问题,我们假设我在过去收到了远程 OAuth 服务器在用户登录并且用户授予我的应用程序访问权限后授予我的访问 token 。我们还假设它是一个“在撤销之前有效”的访问 token 。

当然,主要关注的是实现不会让用户处于危险之中的东西。最简单的方法是让我的 Web 服务器以加密形式将访问 token 返回给我在智能手机上的客户端代码,然后将该加密 token 简单地存储在用户的本地存储中。或者为了更严格的安全性,返回我自己的加密唯一标识符,我的智能手机上的客户端代码在每次请求时都会传递该标识符。然后,我的 Web 服务器可以解密收到的 ID,并在本地数据库中查找最新的访问 token 。这看起来非常安全,除非用户丢失手机。我想我可以在浏览器上实现类似“记住我”的选项,所以如果用户不检查它,那么每次 session 都会触发一个新的重新授权 session 。

如果我的应用程序处理财务信息,那么我什至不会考虑“记住我”选项,但远程 OAuth 服务器背后的应用程序更接近于 Twitter 或 Flickr 的敏感度。

我的问题是:

  • 我提议的访问 token 管理和 OAuth 处理方案对于我描述的应用程序是否足够可靠和安全?
  • 有更好的方法吗?如果是什么?
  • 您对 OAuth 和手机还有其他想法或意见吗?

** 更新 - 在这篇文章发布后,在相关问题列表中找到了这些非常有用的线程:

OAuth secrets in mobile apps

Can I avoid baking my Twitter API consumer secret into my iPhone app binary?

** 更新 2 - 如果您从 session OAuth 存储切换到数据库存储(如 MySQL),请记住为给定的消费者 key 和用户 ID 注册服务器,否则在调用 requestRequestToken 时会出现错误。这个关于 ELance API 的网页有一个很好的示例(查找标题为“第 2 步:获取请求 token ”的部分并查找带有 updateServer 调用的代码段):

http://www.elance.com/p/api/examples/oauth/php

您必须根据自己的远程 OAuth 服务器需求调整示例。

-- 罗施勒

最佳答案

我有一些使用 Yandex(俄罗斯排名第一的搜索引擎)OAuth 服务器的经验。他们就是这样做的..

OAurh 服务器只能通过 HTTPS 访问。因此, token 通过网络以加密方式传输。因为它是 HTTPS - 客户端可以通过证书检查来检查服务器的有效性。

此外,他们建议以加密方式存储收到的访问 token 。至于我,我有自己的存储实现,它以 3DES 加密的方式在 SharedPreferences 中存储访问 token 。 3DES 加密的关键是用户选择的“PIN 码”。每次应用程序启动时,它都会请求 PIN,然后尝试解密 token 。

您可以 look at my library实现对 Yandex 服务之一的访问(使用 OAuth 授予访问权限)。

关于android - Android 手机上的 OAuth 安全问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5712362/

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