保证与php服务器的连接

时间:2011-12-29 16:18:23

标签: php android security http

我有以下情况: Android客户端通过HTTP Post与PHP服务器通信。 PHP服务器正在与mySQL数据库通信,并将输出作为JSON发送到Android客户端。

现在我担心人们会嗅到流量,找到网址并在我的数据库中发布大量的grap。 我不关心嗅探有效载荷。所以它不一定是加密的。

由于HTTP连接,我想到了TLS / SSL。但我不确定在这种情况下首选的方式是什么。

2 个答案:

答案 0 :(得分:3)

您要做的是使用经过相互身份验证的SSL,以便您的服务器只接受来自您应用的传入连接,而您的应用只会与您的服务器进行通信。

这是高级方法。创建自签名服务器SSL证书并在Web服务器上部署。您可以使用Android SDK附带的keytool来实现此目的。然后创建一个自签名客户端,并将其作为资源在应用程序中包含的自定义密钥库中部署到您的应用程序中(keytool也会生成它)。将服务器配置为要求客户端SSL身份验证,并仅接受您生成的客户端证书。配置客户端使用该客户端证书来标识自己,并且只接受您在服务器上安装的那个服务器端证书。

如果您的应用以外的某人/某些人尝试连接到您的服务器,则不会创建SSL连接,因为服务器将拒绝未提供您的应用中包含的客户端证书的传入SSL连接。 / p>

这是一个循序渐进的答案,比这里所保证的要长得多。我建议分阶段执行此操作,因为网络上有关于如何在Android(服务器端和客户端)处理自签名SSL证书的资源。我的书Application Security for the Android Platform中还有一个完整的演练,由O'Reilly出版。

答案 1 :(得分:1)

SSL无法帮助您,因为在数据到达之前可以嗅探流量,人们仍然可以找出您的API调用并用垃圾填充数据库。

您可以通过访问令牌和用户名/密码要求来“保护”服务。但同样,它们不会阻止恶意用户使用错误数据充斥您的系统。但是,它可以让你追踪用户正在这样做,因为他们必须使用某种独特的访问令牌才能进入你的系统。