php sql 过滤

<?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来的。接下来做系统的时候,如果有问题,或者有修改的地方,我会补充说明:
/*
函数名称:inject_check()
函数作用:检测提交的值是不是含有SQL注射的字符,防止注射,保护服务器安全
参  数:$sql_str: 提交的变量
返 回 值:返回检测结果,ture or false
*/
function inject_check($sql_str)
{   
 return eregi('select|insert|update|delete|/*|*|../|./|union|into|load_file|outfile',$sql_str); //进行过滤   
}   
/*
函数名称:verify_id()
函数作用:校验提交的ID类值是否合法
参  数:$id: 提交的ID值
返 回 值:返回处理后的ID
*/  
function verify_id($id=null)
{   
 if (!$id)
 {
  exit('没有提交参数!');    // 是否为空判断
 }    
 elseif (inject_check($id))
 {
  exit('提交的参数非法!');   // 注射判断
 }       
 elseif (!is_numeric($id))
 {
  exit('提交的参数非法!');   // 数字判断
 }
 $id = intval($id);      // 整型化   
 return $id;   
}   
/*
函数名称:str_check()
函数作用:对提交的字符串进行过滤
参  数:$var: 要处理的字符串
返 回 值:返回过滤后的字符串
*/  
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;
}   
/*
函数名称:post_check()
函数作用:对提交的编辑内容进行处理
参  数:$post: 要提交的内容
返 回 值:$post: 返回过滤后的内容
*/  
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;   
}
?>

posted @ 2008-11-10 17:41  酷越  阅读(1152)  评论(0编辑  收藏  举报