有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Android如何使用登录名和密码正确查询在线数据库?

对于我的Android应用程序,我通常通过向各种PHP脚本URL发送GET或POST参数来查询数据库,这些URL反过来会输出我在应用程序中解析的xml或json

但是,如果我有一个数据库,其中包含用户通常使用登录/密码访问的受个人保护的信息,那么从应用程序查询这些信息的最佳方法是什么?我上面的方法可以工作,但我可能需要将用户的登录/传递作为GET或POST参数发送。。。但这似乎是个坏主意

通常,对于web应用程序,用户登录,然后从此点开始使用PHP会话。不过,我不知道如何用安卓应用程序处理这类问题


共 (2) 个答案

  1. # 1 楼答案

    我不认为认证对于android应用程序和连接到web服务是分开的

    您将在android上复制web服务中使用的相同身份验证机制。也就是说,如果您在web服务(传输明文密码)中使用http身份验证,您将在android上复制http身份验证。如果您不想通过网络传递明文凭证,那么首先必须在web服务中实现更安全的东西(https)

    对于我的项目,我使用POST请求将明文凭证传递给服务器。浏览器也传输明文密码。在身份验证之后,服务发回一个令牌(在一般情况下是一个数据库用户id),该令牌必须包含在所有需要用户登录的未来请求中

    存储登录id时&;密码转换为首选项,我首先使用sha1对其进行哈希。这确实意味着下一次,我的web服务将被传递哈希凭证,并且必须知道如何处理它

    这个机制很简单,足以满足我的需要。对于这个项目,我真的负担不起像https这样的东西

  2. # 2 楼答案

    使用PHP脚本中间人总是比直接连接到数据库更安全,因为您可以添加自己的安全层

    在我的应用程序中,我使用硬编码的salt对传递的数据进行编码和解码,并对任何需要用户登录的事务使用生成的身份验证令牌

    不过,这确实取决于你具体想做什么