放到公用调用文件(如conn数据库链接文件),对所有GET或POST的数据进行过滤特殊字符串,以实现简单有效的SQL注入过滤。PHP初学者,欢迎批评指点 谢谢!
[代码]简单函数加判断
Function inject_check($sql_str) { return eregi('select|insert|and|or|update|delete|\'|\/\*|\*|\.\.\/|\.\/|union|into|load_file|outfile', $sql_str); } if (inject_check($_SERVER['QUERY_STRING'])==1 or inject_check(file_get_contents("php://input"))==1){ //echo "警告 非法访问!"; header("Location: Error.php"); }
2. [代码](2013年12月23日更新)结合了大家的指点 改成这样 大家觉得如何?感谢大家继续批评指教!(不区分大小写的)
Function inject_check($sql_str) { return preg_match('/select|insert|and|or|update|delete|\'|\/\*|\*|\.\.\/|\.\/|union|into|load_file|outfile/i', $sql_str); } if (inject_check($_SERVER['QUERY_STRING'])==1 or inject_check(file_get_contents("php://input"))==1){ //echo "警告 非法访问!"; header("Location: Error.php"); exit; }