程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> PHP防注入漏洞攻擊的過濾函數代碼

PHP防注入漏洞攻擊的過濾函數代碼

編輯:PHP綜合
  PHP整站防注入程序,需要在公共文件中require_once本文件,因為現在網站被注入攻擊現象很嚴重,所以推薦大家使用,具體見如下代碼。
  <?PHP
  //PHP整站防注入程序,需要在公共文件中require_once本文件
  //判斷magic_quotes_gpc狀態
  if (@get_magic_quotes_gpc ()) {
  $_GET = sec ( $_GET );
  $_POST = sec ( $_POST );
  $_COOKIE = sec ( $_COOKIE );
  $_FILES = sec ( $_FILES );
  }
  $_SERVER = sec ( $_SERVER );
  function sec(&$array) {
  //如果是數組,遍歷數組,遞歸調用
  if (is_array ( $array )) {
  foreach ( $array as $k => $v ) {
  $array [$k] = sec ( $v );
  }
  } else if (is_string ( $array )) {
  //使用addslashes函數來處理
  $array = addslashes ( $array );
  } else if (is_numeric ( $array )) {
  $array = intval ( $array );
  }
  return $array;
  }
  //整型過濾函數
  function num_check($id) {
  if (! $id) {
  die ( '參數不能為空!' );
  } //是否為空的判斷
  else if (inject_check ( $id )) {
  die ( '非法參數' );
  } //注入判斷
  else if (! is_numetic ( $id )) {
  die ( '非法參數' );
  }
  //數字判斷
  $id = intval ( $id );
  //整型化
  return $id;
  }
  //字符過濾函數
  function str_check($str) {
  if (inject_check ( $str )) {
  die ( '非法參數' );
  }
  //注入判斷
  $str = htmlspecialchars ( $str );
  //轉換html
  return $str;
  }
  function search_check($str) {
  $str = str_replace ( "_", "_", $str );
  //把"_"過濾掉
  $str = str_replace ( "%", "%", $str );
  //把"%"過濾掉
  $str = htmlspecialchars ( $str );
  //轉換html
  return $str;
  }
  //表單過濾函數
  function post_check($str, $min, $max) {
  if (isset ( $min ) && strlen ( $str ) < $min) {
  die ( '最少$min字節' );
  } else if (isset ( $max ) && strlen ( $str ) > $max) {
  die ( '最多$max字節' );
  }
  return stripslashes_array ( $str );
  }
  //防注入函數
  function inject_check($sql_str) {
  return eregi ( 'select|inert|update|delete|'|/*|*|../|./|UNION|into|load_file|outfile', $sql_str );
  // www.lifezd.com 進行過濾,防注入
  }
  function stripslashes_array(&$array) {
  if (is_array ( $array )) {
  foreach ( $array as $k => $v ) {
  $array [$k] = stripslashes_array ( $v );
  }
  } else if (is_string ( $array )) {
  $array = stripslashes ( $array );
  }
  return $array;
  }
  ?> *
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved