加入收藏 | 设为首页 | 会员中心 | 我要投稿 鞍山站长网 (https://www.0412zz.com/)- 应用安全、运维、云计算、5G、云通信!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php简单实现sql防注入的方法

发布时间:2022-07-15 12:59:26 所属栏目:PHP教程 来源:互联网
导读:这篇文章主要介绍了php简单实现sql防注入的方法,涉及addslashes函数的使用及正则过滤的相关技巧,非常简单实用,需要的朋友可以参考下。 本文实例讲述了php简单实现sql防注入的方法,分享给大家供大家参考,具体如下: 这里没有太多的过滤,主要是针对php和mys
  这篇文章主要介绍了php简单实现sql防注入的方法,涉及addslashes函数的使用及正则过滤的相关技巧,非常简单实用,需要的朋友可以参考下。
 
  本文实例讲述了php简单实现sql防注入的方法,分享给大家供大家参考,具体如下:
 
  这里没有太多的过滤,主要是针对php和mysql的组合。
 
  一般性的防注入,只要使用php的 addslashes 函数就可以了。
 
  以下是一段copy来的代码:
 
  PHP代码:
 
  $_POST = sql_injection($_POST);
  $_GET = sql_injection($_GET);
  function sql_injection($content)
  {
  if (!get_magic_quotes_gpc()) {
  if (is_array($content)) {
  foreach ($content as $key=>$value) {
  $content[$key] = addslashes($value);
  }
  } else {
  addslashes($content);
  }
  }
  return $content;
  }
  做系统的话,可以用下面的代码,也是copy来的。
 
  PHP代码:
 
  function inject_check($sql_str) {
   return eregi('select|insert|update|delete|'|/*|*|../|./|union|into|load_file|outfile', $sql_str);  // 进行过滤
  }
  function verify_id($id=null) {
   if (!$id) { exit('没有提交参数!'); }  // 是否为空判断
   elseif (inject_check($id)) { exit('提交的参数非法!'); }  // 注射判断
   elseif (!is_numeric($id)) { exit('提交的参数非法!'); }  // 数字判断
   $id = intval($id);  // 整型化
   return $id;
  }
  function str_check( $str ) {
   if (!get_magic_quotes_gpc()) {  // 判断magic_quotes_gpc是否打开
    $str = addslashes($str);  // 进行过滤
   }
   $str = str_replace("_", "_", $str);  // 把 '_'过滤掉
   $str = str_replace("%", "%", $str);  // 把 '%'过滤掉
   return $str;
  }
  function post_check($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;
  }
 

(编辑:鞍山站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读