如何安全地将android位置数据发送到服务器

时间:2013-11-13 20:07:51

标签: php android security

我刚刚开始进入Android开发阶段,目前我正在开发一款应用程序,其部分功能是每小时更新一次GPS位置。我已经设法通过将值发布到类似于下面的PHP文件的应用程序来存储我的数据库中的位置。我无法搞清楚的问题是如何安全地执行此操作,以便只存储来自我的Android应用程序的值,而不仅仅是存储到网址的任何数据。

收到gps值的简化php文件:

<?php 

require_once 'connect.php';

$imei = $_POST['imei'];
$longitude = $_POST['longitude'];
$latitude = $_POST['latitude'];

$result = mysqli_query($con, "UPDATE `device_location` SET `Longitude` = '$longitude', `Latitude` = '$latitude' WHERE `IMEI` = '$imei'"); 

?>

基本上,任何知道php文件的URL和有效的IMEI号的人都可以发布假的gps值。如何验证gps值是否仅来自我的Android应用程序?

2 个答案:

答案 0 :(得分:0)

一种方法是生成随机字符串,以便在用户登录到您的应用时用作访问令牌。将此字符串保存在数据库中,并使用此字符串进行所有未来的API调用。然后,您的服务器端代码可以通过在数据库中查找来检查访问令牌是否有效。如果它有效,则继续请求。

答案 1 :(得分:0)

  1. 您可以在服务器的应用代码中使用硬编码的字符串 并在Android中,不要与任何人分享。
  2. 如果要增加安全性,可以创建一个由您自己或在服务器中生成GUID(令牌)的任何库生成的字符串,因此当用户在Android应用程序中进行验证时,将该字符串保存在数据库中具有到期时间(表中的列,然后验证请求完成时,令牌有效)。应该在Android应用程序的每个请求中发送令牌,当用户完成会话时,应该删除令牌,因此当他再次进行身份验证时,获取另一个令牌。
相关问题