mysql防止sql注入 3种方法总结(phpsql防注入函数)

这篇文章介绍的内容是关于PHP+Mysql防止SQL注入的方法,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

方法一:

mysql_real_escape_string -- 转义 SQL 语句中使用的字符串中的特殊字符,并考虑到连接的当前字符集 !

$sql = "select count(*) as ctr from users where username

='".mysql_real_escape_string($username)."' and

password='". mysql_real_escape_string($pw)."' limit 1";

方法二:

打开magic_quotes_gpc来防止SQL注入。php.ini中有一个设置:magic_quotes_gpc = Off这个默认是关闭的,如果它打开后将自动把用户提交对sql的查询进行转换,比如把 ' 转为 '等,对于防止sql注射有重大作用。

如果magic_quotes_gpc=Off,则使用addslashes()函数。

方法三:

自定义函数

/**

防止sql注入自定义方法一

author: xiaochuan

@param: mixed $value 参数值

*/ 

function check_param($value=null) { 

        #  select|insert|update|delete|'|/*|*|../|./|union|into|load_file|outfile

    $str = 'select|insert|and|or|update|delete|'|/*|*|../|./|union|into|load_file|outfile';

  

    if(!$value) {

  

        exit('没有参数!'); 

  

    }elseif(eregi($str, $value)) { 

  

        exit('参数非法!');

  

    }

  

    return true; 

} 

   

  

  

  

  

  

  

/**

防止sql注入自定义方法二

author: xiaochuan

@param: mixed $value 参数值

*/

function str_check( $value ) { 

  

    if(!get_magic_quotes_gpc()) { 

  

        // 进行过滤 

        $value = addslashes($value); 

  

    } 

  

    $value = str_replace("_", "_", $value); 

  

    $value = str_replace("%", "%", $value); 

       

   return $value; 

} 

   

  

  

  

  

  

/**

防止sql注入自定义方法三

author: xiaochuan

@param: mixed $value 参数值

*/

function post_check($value) { 

  

    if(!get_magic_quotes_gpc()) {

  

        // 进行过滤  

        $value = addslashes($value);

  

    } 

  

    $value = str_replace("_", "_", $value); 

  

    $value = str_replace("%", "%", $value); 

  

    $value = nl2br($value); 

  

    $value = htmlspecialchars($value); 

  

    return $value; 

}

以上就是PHP+Mysql防止SQL注入的方法的详细内容

mysql防止sql注入 3种方法总结(phpsql防注入函数)

版权声明:本文内容由互联网用户投稿发布,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2211788188@qq.com 举报,一经查实,本站将立刻删除。如需转载请注明出处:https://www.wptmall.com/a/article/17510

为您推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注