我道歉,如果这个问题已经被问,如果它只是链接我它在一个评论。
所以我用php
一个Android/iOS的应用程序,这样工作创建的Web服务。
该应用程序发送到
http://www.example.com/ws/getCookingData.php
请求与2个$_POST
PARAMATERSuserID
和foodType
的
php
文件然后查询使用这两个变量的数据库,并返回一个结果json_encode
。
我担心的是,如果有人发现我的网络服务链接他们可以导致调用我的数据库100的那些只是联合国需要
以下POST请求的垃圾邮件是一个例子我目前getData.php
文件
<?php
$userID = mysql_escape_string($_POST['userID']);
$foodType = mysql_escape_string($_POST['foodType']);
$mysqli = getDB();
echo json_encode(getDate($mysqli, $userID, $foodType); //mysql database interaction is here
$mysqli->close();
?>
这里没有什么防止黑客试图恶意的SQL语句发布到我的数据库
所以我想知道的是,如果我添加第三个参数到我的发布请求appID
这是一个很好的解决方案吗?
例如,如果我是来更新我的getData.php
文件下面这会是更安全还是有漏洞,我失踪?
<?php
$appID = $_POST['appID'];
if($appID === "hardCodedEquivalentID"){
$userID = mysql_escape_string($_POST['userID']);
$foodType = mysql_escape_string($_POST['foodType']);
$mysqli = getDB();
echo json_encode(getDate($mysqli, $userID, $foodType); //mysql database interaction is here
$mysqli->close();
}
?>
如果这是一个很好的解决方案,或者已经有一个等效的做法,将实现我想要做的请告诉我
'''''''''''''''''''''''''''''''''''''''''' - 没有SQL注入漏洞就是解决这个问题的答案。我们无法确定,因为我们没有看到您的数据访问代码,但考虑到此代码,我发现您可能有这样的漏洞。 ''如果我向我的发布请求添加了第三个参数,称为appID,这将是一个很好的解决方案吗?“ - 任何使用您的应用程序的人都会看到该值。这不会是一个秘密。 – David
@David关于你的第二点,如何让任何人能够看到appID值? –
@CamConnor:通过监视应用程序和服务之间的流量。除非你在应用程序中加密该流量? – David