将php与Android、安全方法连接起来
我正在将数据从Android应用程序发送到接收信息并进行处理的php脚本,我发现了一个安全问题:如果有人发现了url(例如:mydomain.com/receivedata.php),任何人都可以将数据发送到我的系统 确保发送数据的客户端是应用程序的理想方法是什么将php与Android、安全方法连接起来,php,android,api,Php,Android,Api,我正在将数据从Android应用程序发送到接收信息并进行处理的php脚本,我发现了一个安全问题:如果有人发现了url(例如:mydomain.com/receivedata.php),任何人都可以将数据发送到我的系统 确保发送数据的客户端是应用程序的理想方法是什么 谢谢 唯一正确的方法是不要相信你收到的数据。始终以适合于来自坏人的精心编制的数据的方式对待它。我看到一些公司做的一个简单的方法是包含一个密钥。例如,您的POST数据可能有一个secret=3CH6knCsYmvA2va8GrHk4mf
谢谢 唯一正确的方法是不要相信你收到的数据。始终以适合于来自坏人的精心编制的数据的方式对待它。我看到一些公司做的一个简单的方法是包含一个密钥。例如,您的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等数据。谢谢。你知道他们还想要什么吗?他们希望用户登录吗?他们是否需要对传递的数据进行加密?这些是不同类型的关注点。