如果我收到来自GET的输入,我的代码是否安全?

时间:2014-03-08 15:41:25

标签: php mysql

我正在创建一个需要连接到MySQL数据库并执行各种操作的应用程序。 我已经创建了PhP脚本来为我做所有服务器端的事情,比如连接数据库和进行CRUD操作。然后,PhP脚本将回显结果,该结果存储在我的代码中的String中以供进一步处理。

但是,我担心安全问题。我的PhP脚本对所有人开放使用。例如:“http://mySite.php?value1=test&value2=test”可以是这样的脚本,它可以做的是将URL的GET部分中的值插入到我的数据库中。

我知道这不安全,但我不知道该怎么办?问题是,PhP脚本没有链接到任何地方,只是在我的代码中使用它们。我的意思是,它是专门为我的应用程序工作而创建的PhP代码,所以我只是通过从应用程序本身发送HTTP请求来运行它们,而且我从不会碰到我的浏览器并输入地址(但是,其他人可以),这就是为什么我不认为它是非常安全的。

为了使我的脚本安全,有什么想法/好建议吗?

修改 这是我的代码的一个例子,我想让它安全:

$orderGrill = $_GET["getOrder"];
    $query = "INSERT INTO grillOrders (`order`, `orderNumber`) VALUES ('{$orderGrill}', {$orderNumber})";

在那里你可以看到,我是如何直接使用GET值的。但是我应该如何让他们安全?我无法使用表单,因为我在“幕后”从iPhone应用程序运行此脚本,因此用户无法看到表单。

谢谢

2 个答案:

答案 0 :(得分:1)

我真的在php.net手册上建议你这个,它非常有价值。 Prepared statements and filtering.

答案 1 :(得分:0)

将Mysqli或PDO与预准备语句一起使用以保护数据库。使用htmlentities来防范xss攻击。查看manual了解详情。