Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 这是不是;清晰的;函数阻止SQL注入?_Php_Sql_Get - Fatal编程技术网

Php 这是不是;清晰的;函数阻止SQL注入?

Php 这是不是;清晰的;函数阻止SQL注入?,php,sql,get,Php,Sql,Get,可能重复: php get var clear它是好还是不好请帮助我 function Clear($text) $Var = str_replace("'", "", $text); $Var = str_replace('"', '', $Var); $Var = strip_tags($Var); $Var = htmlentities($Var); return $Var; } $_GET['Var'] = "1='1'"; $Var = Cle

可能重复:

php get var clear它是好还是不好请帮助我

function Clear($text)
    $Var = str_replace("'", "", $text);
    $Var = str_replace('"', '', $Var);
    $Var = strip_tags($Var);
    $Var = htmlentities($Var);
    return $Var;
}
$_GET['Var'] = "1='1'";
$Var = Clear($_GET['Var']);
$Query = "SELECT * FROM TABLE_NAME WHERE COL ='{$Var}'";
echo 'Result : '.($Query);

这是用于SQL注入的,这是我使用pdo编写iam的示例代码。如果我使用mysql\u real\u escape\u字符串,它不会工作。

否。否。

这是不“安全”的攻击

最低限度使用
mysql\u real\u escape\u string
(专门为此设计)。第一个版本,
mysql\u escape\u string
,就是这个“真实”版本存在的原因

但是,我推荐占位符作为更通用(更整洁)的解决方案


请看(我也投票支持这一点)。答案包括PDO和准备好的陈述等。

使用准备好的陈述:

太模糊了!你的问题是什么?我相信问题在于使用
Clear()
方法是否有效地防止了SQL注入。我想让get参数过滤掉id你是说使用$\u get是一种好的做法还是不好的做法?你的问题不可理解,请通过编辑您的question@user1289782在你的样本代码中没有pdo我看了那篇文章,并将这个问题标记为一个完全相同的问题,以帮助:-)不幸的是,我已经达到了当天的投票上限,所以我不能提高投票。。。