编程爱好者之家

PHP防止SQL注入方法

2019-08-12 11:57:11 294

我们在查询数据库时,出于安全考虑,需要过滤一些非法字符防止SQL恶意注入,请看一下函数:
方法一:
function injCheck($sql_str) {  
    $check = preg_match('/select|insert|update|delete|\'|\/\*|\*|\.\.\/|\.\/|union|into|load_file|outfile/', $sql_str); 
    if ($check) { 
        echo '非法字符!!'; 
        exit; 
    } else { 
        return $sql_str; 
    } 
}
使用方法如下:
echo injCheck('1 or 1=1');

方法二:
function checkme($post)
{
   if (!get_magic_quotes_gpc()) // 判断magic_quotes_gpc是否为打开
   {
      $post = addslashes($post); // 进行magic_quotes_gpc没有打开的情况对提交数据的过滤
   }
   $post = str_replace("_", "\_", $post); // 把 '_'过滤掉
   $post = str_replace("%", "\%", $post); // 把' % '过滤掉
   $post = nl2br($post); // 回车转换
   $post= htmlspecialchars($post); // html标记转换
   return $post;
}


同类文章