android确保安全

时间:2012-04-23 11:02:07

标签: java php android

我正在制作app,它会向php脚本发送价值。然后PHP脚本将连接到Mysql数据库并返回JSON数组。然后应用程序会读取它。如何确保安全?目前我没有采取任何安全措施。

1 个答案:

答案 0 :(得分:1)

这取决于,这是一个如此巨大的话题,一个真正的答案会带来一本物有所值的书。

您在问什么'安全措施'?

如果您正在谈论涉及Web服务器,那么首先需要保护您的Web服务器并构建一个足够智能的API,以防止大多数常见的攻击方法。你需要确保其他人 - 只需在URL中输入内容 - 不能做你想要的用户可以做的事情。这意味着您需要在授予用户访问API之前对其进行验证。

这种做法的最常见方法是共享只有服务器和客户端知道的“密钥”。因此,您的用户,使用电话,有一个特定的密钥,服务器有一个密钥。现在用户将数据发送到服务器并发送验证散列(如sha1(KEY + DATA))。然后,服务器接收数据并确保散列相同。切勿将密钥本身与请求一起发送。

您需要测试的另一件事是重播攻击。如果有人听取了通信,那么你必须限制损害。这通常是通过发送带有请求的时间戳和服务器检查时间戳是否在可接受的范围内来完成的,因此如果某人稍后再次发送相同的请求,则由于时间戳不同而失败。服务器会对此进行检查,因为输入数据验证也会考虑时间戳。

然后你必须确保从服务器返回的数据是正确的。因此,服务器还会构建一个验证哈希,您的手机将检查该哈希,确保有人在将数据发送回您的手机时没有更改数据。

作为一个附加层,您还可以使用AES / Rijndael 256bit加密等加密算法加密发送(并从API接收)的数据。这将使用打开数据所需的密钥对数据进行加密。如果电话和服务器知道密钥而没有其他人知道密钥,则可以安全地发送数据。

然后连接应该是HTTPS / SSL,这有助于防止通信被收听。但如果有人已经可以访问您的手机,这无济于事,因此建议也使用其他提到的方法。

至于您的手机,只要您没有安装可能会危及该安全性的应用程序,它就会非常安全。此外,如果您认为可以减少Web服务器的安全性,那么认为只有手机与之通信才是安全的,那么黑客就可以轻松地在自己的手机上进行通信,并找出Web服务API的基础知识和然后打开所有的门。因此,请确保您的安全层从最大到最小:Web服务器是您系统中最大的实体。

正如您所看到的,这是一个可能需要很长时间才能学习的大量主题。但是,如果不知道你究竟在问什么,我真的无法帮助你。