Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/249.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将php与Android、安全方法连接起来_Php_Android_Api - Fatal编程技术网

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

将php与Android、安全方法连接起来,php,android,api,Php,Android,Api,我正在将数据从Android应用程序发送到接收信息并进行处理的php脚本,我发现了一个安全问题:如果有人发现了url(例如:mydomain.com/receivedata.php),任何人都可以将数据发送到我的系统 确保发送数据的客户端是应用程序的理想方法是什么 谢谢 唯一正确的方法是不要相信你收到的数据。始终以适合于来自坏人的精心编制的数据的方式对待它。我看到一些公司做的一个简单的方法是包含一个密钥。例如,您的POST数据可能有一个secret=3CH6knCsYmvA2va8GrHk4mf

我正在将数据从Android应用程序发送到接收信息并进行处理的php脚本,我发现了一个安全问题:如果有人发现了url(例如:mydomain.com/receivedata.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");
}
您可以轻松地从中生成随机字符串


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

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

  • 在应用程序和PHP之间添加一个哈希以进行同步(也称为密钥)
  • 确保脚本控制每个输入数据
  • 不转义数据就不向查询发送数据(SQL注入)
  • 尝试使用POST而不是GET或REQUEST
  • 尽可能将你的职能保密
  • 始终解析您收到的数据(检查它是否是数字、字符串或数组等)

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

是否可以在请求标题中添加特殊内容?这仍然可以破解,但不仅仅是通过查看url。特殊内容,比如什么?我的意思是有什么规范或什么的吗?谢谢,我就是这样写代码的,但他们告诉我,它不够安全,无法发送注册中的用户id等数据。谢谢。你知道他们还想要什么吗?他们希望用户登录吗?他们是否需要对传递的数据进行加密?这些是不同类型的关注点。