连接php与Android,安全方法

时间:2012-05-31 21:27:41

标签: php android api

我正在从Android应用程序发送数据到一个收到信息并获取信息的PHP脚本,我发现了一个安全问题:如果有人发现了该网址(例如:mydomain.com/recievedata.php),任何人都可以将数据发送到我的系统。

确保客户端发送数据的理想方法是应用程序吗?

谢谢!

3 个答案:

答案 0 :(得分:6)

我看到一些公司做的一个简单方法是包含一个密钥。例如,您的POST数据可能有secret=3CH6knCsYmvA2va8GrHk4mf3JqmUctCM参数。然后,receivedata.php顶部所需的只是

if($_POST['secret'] != '3CH6knCsYmvA2va8GrHk4mf3JqmUctCM') {
    header('HTTP/1.1 403 Forbidden');
    error_log("ERROR: wrong secret: " . $_POST['secret']);
    exit("Access denied");
}

您可以轻松地从random.org生成随机字符串。

当然,这不是最安全的方法,并且该字符串可能以明文形式存储在APK中(不要使用它来发送启动代码!),但它很容易且足以让大多数人离开。例如,这可能适用于为游戏发送玩家分数。

答案 1 :(得分:3)

这更像是一个PHP问题。以下是您应该为安全做的事情;

  • 在您的应用和PHP之间添加哈希以进行同步(AKA密钥)
  • 确保您的脚本控制每个输入数据
  • 请勿在不转义数据的情况下发送数据(SQL Inject)
  • 尝试使用POST而不是GET或REQUEST
  • 尽可能保持您的功能私密
  • 始终解析您收到的数据(检查其数字,字符串或数组等)

有了这些,没有你的应用程序,任何人都无法使用你的任何PHP文件。如果没有您的许可,他们将无法接收任何数据

答案 2 :(得分:1)

唯一正确的方法是不信任您收到的数据。始终以适合来自坏人的精心制作数据的方式对待它。