首页 > 数据库 > MySQL > 正文

PHP+Mysql防止SQL注入的方法

2020-03-22 18:52:39
字体:
来源:转载
供稿:网友
这篇文章介绍的内容是关于PHP+Mysql防止SQL注入的方法,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

相关mysql视频教程推荐:《mysql教程》

方法一:

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 $html' target='_blank'>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注入的方法的详细内容,更多请关注 其它相关文章!

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表