Android PHP Web服务安全性

Android PHP Web服务安全性,php,android,web-services,security,Php,Android,Web Services,Security,我已经构建了一个应用程序,它通过POST将HTTP请求从Android发送到PHP服务器 我的问题是如何确保安全? 如何在服务器端以安全的方式进行身份验证 用SSL连接发送数据就足够了吗?或者我应该用RSA或其他什么加密吗?这取决于您试图保护的内容,SSL将阻止任何人监听通信,您不需要在上面添加其他加密 如果您想保护web服务本身不被未经授权的使用,那么您需要用户注册并发送用户名和密码(或更好的密码散列)以进行连接,然后您可以为每个请求使用密码,或者生成一个密钥,该密钥将随每个请求一起发送以验证

我已经构建了一个应用程序,它通过POST将HTTP请求从Android发送到PHP服务器

我的问题是如何确保安全? 如何在服务器端以安全的方式进行身份验证


用SSL连接发送数据就足够了吗?或者我应该用RSA或其他什么加密吗?

这取决于您试图保护的内容,SSL将阻止任何人监听通信,您不需要在上面添加其他加密

如果您想保护web服务本身不被未经授权的使用,那么您需要用户注册并发送用户名和密码(或更好的密码散列)以进行连接,然后您可以为每个请求使用密码,或者生成一个密钥,该密钥将随每个请求一起发送以验证用户


IMEI的想法并不太好,因为如果你有1,2个以上的用户,你首先需要获得每个人的IMEI,这是一个巨大的痛苦,即使这样,这也是可以伪造的,因为你的Android应用程序可以被拆开并为任何IMEI服务。

考虑使用IMEI作为Lucifer建议我这样做:

  • 打开Android应用程序-如果我没有登录,该应用程序将显示一些登录活动
  • 我输入登录名和密码,然后点击“登录”按钮
  • 在Android应用程序中,您可以散列密码并向服务器发送HTTP post请求,其中包含登录名、散列密码和imei
  • 服务器部件将尝试登录该用户(并记录任何不适当的行为或输入),并返回true或false(取决于用户是否可以登录)
  • 将登录信息存储在应用程序中的某个位置,这样用户就不必在每次关闭和重新打开应用程序时登录-当应用程序在后台运行时(直到dalvik决定将其杀死),用户应被视为已登录
  • 如果用户已登录,请继续使用该应用程序

  • 在这种情况下,必须使用SSL(HTTPS)…

    我的建议是,使用JSON数组发送设备的IMEI,并且IMEI必须存在于服务器上的数据库中。如果两者都匹配,则它是有效的JSON数组,否则不是。您能解释更多吗?你想要什么样的保证?您想要基于用户名和密码的身份验证吗?是的,我想进行基于用户名和密码的身份验证,Lucifer's可以对其进行补充以提高安全性。在同一请求中发送用户名和密码以及imei安全吗?还是我应该先对用户进行身份验证并生成“密钥”然后用JSON数组和生成的密钥发出第二个请求?我认为最好发送username&pass&imei(例如,您可以在服务器上记录bruteforce尝试并禁止使用imei)imei很好,因为我的公司会将设备提供给销售人员,应用程序将安装在这些设备上。我现在的疑问是,我应该在一个请求(user、pass、imei和json)中发送所有信息,还是请求进行身份验证并发回一个密钥,以便在发送json的第二个请求中使用?这两个步骤并不重要,只要都通过SSL,就不会添加任何内容。如果是它的内部应用程序,那么你可以管理IMEI,但请记住,Android应用程序可以被拆开并更改为其真正没有那么多额外的保护。