Android:关于通过HTTP进行安全和用户认证(注册、登录)的一些问题

标签 android security ssl httprequest android-authenticator

我只是无法理清这个问题。我目前正在 Android 上构建一个相当大规模的应用程序。不过,我遇到了一些有关安全和身份验证的问题......

场景:

我有一个应用程序通过 HTTP(稍后将实现 SSL)调用运行 PHP 和 MySQL 的服务器。当然我想使用现有的用户数据库,所以迁移到另一个数据库不是一个解决方案.. 我设法创建了“通过 Android 将用户注册到服务器”功能。 我也做了一个有效的登录,但这就是问题开始的地方。

作为我正在处理的 Android 应用程序中的用户,通过/向应用程序添加、编辑、删除和同步服务器上的内容,事情变得相当复杂。对我来说似乎有点太复杂了:)

问题:

  1. 当我从服务器端登录获得结果并将其从 服务器通过 JSON 连接到 Android,连接终止,服务器端我 'aint logged-on (sessions dies) while on the phone I'm.我怎么能够 使登录在服务器和 Android 中都持久化,而无需 需要重新登录吗?以便后续从 Android 调用 服务器由同一个用户创建,仍然经过身份验证。 IE。我 想要一种一次性登录('直到我注销)就像在 Spotify 应用程序(以及许多其他应用程序)。

  2. 如果我理解正确,正确实现 SSL 就可以 可以将密码以明文形式发送到服务器,而无需先对它们进行哈希处理。这是正确的吗?

我一直在想 MIM 攻击会破坏我从 Android 发送到服务器的任何唯一 ID。我的第一个想法是在成功登录后将 Android 设备上的 UID 作为服务器的“ key ”。但是,如果该 key 落入坏人之手,则与该 UID 关联的用户将受到威胁。我查看了 Android 上的 AccountManager,但在我的案例中它似乎有点过头了。

如果有人可以提供示例或至少提供指南,我将不胜感激!

提前致谢!

编辑后添加的解决方案图

Image describing the mechanism of the authentication

请注意,此图显示了应用程序的首次启动。以后的初创公司将不会显示登录/注册表单,而是使用 DUT。

//亚历山大

最佳答案

向 Android 应用颁发某种形式的短期身份验证 token 。他们需要在每个请求中传递它,您将检查它您的 Web 应用程序。断开连接不会结束 session ,如果确实如此,则您的 Web 应用程序中存在错误:修复它。在 Android 中,只要您使用同一个 HttpClient 实例,它就会继续使用同一个 session ,不需要什么特别的。

无论您做什么,都不要推迟实现 SSL,现在

关于Android:关于通过HTTP进行安全和用户认证(注册、登录)的一些问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13865296/

相关文章:

java - 如何获取 HTML 中的 REST 参数

android - 使用 Android Studio 创建新的 Android 项目时出错

url - 在 Codeigniter 中加密 uri 段

c# - 使用 asp.net 将服务器证书导入 Keystore 以验证请求来自受信任的服务器

java - 如何建立到 mail.google.com 的单向 SSL 连接?

Android map 扩展 : return map as null

Android Studio gradle sync 找不到库

security - 服务器到服务器通信中是否需要防伪 token ?

magento - Nginx 在 https 域上提供非安全资源

sql-server - 服务器升级后 Excel 宏上发生 SSL 安全错误