Php SQL注入预防-获取变量

Php SQL注入预防-获取变量,php,mysql,sql-injection,Php,Mysql,Sql Injection,我有一个url,有效时如下所示: site.com/page.php?id=12345 我想知道我们是否可以使用sql注入。在这个特定的实例中,该值应该只为正整数值,因为它是一个id号。我们有时会使用其他变量,例如搜索结果页面,这些变量可以是字母或文本字符串 用于提取ID变量的代码示例如下: $variable = "0"; if (isset($HTTP_GET_VARS["id"])) { $variable = (get_magic_quotes_gpc()) ? $HTTP_GET

我有一个url,有效时如下所示:

site.com/page.php?id=12345
我想知道我们是否可以使用sql注入。在这个特定的实例中,该值应该只为正整数值,因为它是一个id号。我们有时会使用其他变量,例如搜索结果页面,这些变量可以是字母或文本字符串

用于提取ID变量的代码示例如下:

$variable = "0";
if (isset($HTTP_GET_VARS["id"])) {
  $variable = (get_magic_quotes_gpc()) ? $HTTP_GET_VARS["id"] : addslashes($HTTP_GET_VARS["id"]);
}
在大多数从url获取变量的情况下,都是这样处理的

这是否有助于防止sql注入

我应该使用mysql\u real\u escape\u字符串吗

我一直在阅读有关准备好的声明,但这似乎令人望而生畏,我们在网站上到处使用这些变量,有很多页面和查询。在短期或中期内,通过并替换它们是不可行的

如果有另一种方法可以在没有准备好声明的情况下验证数据,任何建议都将不胜感激

提前谢谢

这是否有助于防止sql注入

没有

我应该使用mysql\u real\u escape\u字符串吗

没有

如果有别的办法

否。
每一种方法都需要重写所有的代码——这样或那样

但是,选择权在您。
如果站点的价值不值得为正确重写而付出的努力,那么就保持原样。
如果价值很高——比如,试着雇佣一个人来做这项工作

这是否有助于防止sql注入

没有

我应该使用mysql\u real\u escape\u字符串吗

没有

如果有别的办法

否。
每一种方法都需要重写所有的代码——这样或那样

但是,选择权在您。
如果站点的价值不值得为正确重写而付出的努力,那么就保持原样。

如果这个值很高-比如,试着雇佣一个人来做这项工作。

你使用的是哪个PHP版本?你应该使用
mysqli
pdo
而不是旧的、很快就会被弃用的
mysql
函数。使用预先准备好的语句检查这个
在短期或短期内替换它们是不可行的中期。
然后准备注射
addslashes
非常容易通过。如果prepared statemets不是一个选项,那么使用typecast+
mysql\u real\u escape\u string
清理输入是唯一的选项。但最后,,最好重写它。您使用的是哪个PHP版本?您应该使用
mysqli
pdo
而不是旧的、很快就会被弃用的
mysql
函数。使用准备好的语句检查这个
,检查并替换它们在短期或中期内都不可行。
然后准备注入
addslashes
非常容易通过。如果prepared statemets不是一个选项,那么使用typecast+
mysql\u real\u escape\u string
清理输入是唯一的选项。但最后,最好重写它。