将php与Android,安全方法连接起来


Connect php with Android, security methods

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

确保发送数据的客户端是应用的理想方法是什么?

谢谢!

我看到一些公司做的一个简单的方法是包含一个密钥。例如,您可能有一个 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中(不要使用它来发送启动代码!),但它很容易和足够好,可以将大多数人拒之门外。例如,这可能足以发送游戏的玩家分数。

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

  • 在您的应用和 PHP 之间添加哈希以同步(又名密钥)
  • 确保您的脚本控制每个输入数据
  • 不要在不转义数据的情况下将数据发送到查询(SQL 注入)
  • 尝试使用 POST 而不是 GET 或 REQUEST
  • 尽可能保持函数的私密性
  • 始终解析您收到的数据(检查它是数字、字符串还是数组等)

有了这些,没有人能够在没有您的应用程序的情况下使用您的任何 PHP 文件。未经您的许可,他们将无法接收任何数据

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