0

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

4

1 回答 1

1

这取决于,这是一个如此庞大的话题,以至于真正的答案需要一本书的材料。

你问的是什么“安全措施”?

如果您正在谈论涉及 Web 服务器,那么您首先需要保护您的 Web 服务器并构建一个足够智能的 API,以防止最常见的攻击方法。你需要确保其他人——仅仅通过在 URL 中输入一些东西——不能做你的目标用户可以做的同样的事情。这意味着您需要先验证用户,然后才能授予他们访问 API 的权限。

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

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

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

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

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

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

如您所见,这是一个庞大的主题,可能需要很长时间才能学习。但是在不知道你到底在问什么的情况下,我真的无法为你提供任何进一步的帮助。

于 2012-04-23T11:14:50.653 回答