阅读您正确提供的链接。
问题的解决方法写在链接里
1.使用prepared statement类修复sql注入漏洞&过滤sql错误请求。设置 error(0) 以防止通过异常或错误报告泄露信息。
2. 解析输入字段,限制 () > < \ / 等字符,以防止脚本包含。如果脚本代码在模块上下文之外执行,则还要解析易受攻击的输出部分。
做出准备好的陈述
$oDB=new PDO('..your connection.. ');
$hStmt=$oDB->prepare("select * from users where id=:id");
$hStmt->execute(array(':id',$userID));
请注意,上面$userID
没有与 SQL 字符串组合,因此 SQL 注入将不起作用。
使用 mysqli_real_escape_string
请注意,它mysql_real_escape_string
已被弃用,因此我将提及如何使用mysqli_real_escape_string
$a= "'ABCD"; //will not work because of quotation
$a= $mysqli->real_escape_string($a);
//Now this is the string with special chars escaped
欲了解更多信息,请阅读
PDO 如何防止 PHP 中的 SQL 注入?
转义字符串http://php.net/manual/en/mysqli.real-escape-string.php