当前位置:Gxlcms > 数据库问题 > PHP防SQL注入攻击

PHP防SQL注入攻击

时间:2021-07-01 10:21:17 帮助过:18人阅读

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;       }  

PHP防SQL注入攻击

标签:turn   injection   判断   add   div   else   防sql注入   组合   ash   

人气教程排行