熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> PHP編程 >> 正文

PHP 安全檢測代碼片段(分享)

2013-11-15 12:35:18  來源: PHP編程 
本篇文章是對PHP安全檢測代碼的片段進行了詳細的分析介紹需要的朋友參考下   復制代碼 代碼如下:

  
/**
  * html轉換輸出(只轉義 " 保留Html正常運行)
  * @param $param
  * @return string
  */
 function htmlEscape($param) {
    return trim(htmlspecialchars($param ENT_QUOTES));
 }

  /**
  * 是否數組(同時檢測數組中是否存在值)
  * @param $params
  * @return boolean
  */
 function isArray($params) {
     return (!is_array($params) || !count($params)) ? false : true;
 }

 /**
  * 變量是否在數組中存在(參數容錯 字符串是否存在於數組中)
  * @param $param
  * @param $params
  * @return boolean
  */
 function inArray($param $params) {
    return (!in_array((string)$param (array)$params)) ? false : true;
 }

 /**
  * 通用多類型混合轉義函數
  * @param $var
  * @param $strip
  * @param $isArray
  * @return mixture
  */
 function sqlEscape($var $strip = true $isArray = false) {
    if (is_array($var)) {
        if (!$isArray) return " ";
        foreach ($var as $key => $value) {
            $var[$key] = trim(S::sqlEscape($value $strip));
        }
        return $var;
    } elseif (is_numeric($var)) {
         return " " $var " ";
    } else {
        return " " addslashes($strip ? stripslashes($var) : $var) " ";
    }
}

     /**
      * 獲取服務器變量
      * @param $keys
      * @return string
      */
     function getServer($keys) {
         $server = array();
         $array = (array) $keys;
         foreach ($array as $key) {
             $server[$key] = NULL;
             if (isset($_SERVER[$key])) {
                 $server[$key] = str_replace(array(<>"""%C%E%%%c%e) $_SERVER[$key]);
             }
         }
         return is_array($keys) ? $server : $server[$keys];
     }

     /**
      * 變量轉義
      * @param $array
      */
     function slashes(&$array) {
         if (is_array($array)) {
             foreach ($array as $key => $value) {
                 if (is_array($value)) {
                     S::slashes($array[$key]);
                 } else {
                     $array[$key] = addslashes($value);
                 }
             }
         }
     }

     /**
      * 目錄轉換
      * @param unknown_type $dir
      * @return string
      */
     function escapeDir($dir) {
         $dir = str_replace(array(""#=`$%&;) $dir);
         return rtrim(preg_replace(/(/){}|(){}/ / $dir) /);
     }
     /**
      * 通用多類型轉換
      * @param $mixed
      * @param $isint
      * @param $istrim
      * @return mixture
      */
     function escapeChar($mixed $isint = false $istrim = false) {
         if (is_array($mixed)) {
             foreach ($mixed as $key => $value) {
                 $mixed[$key] = S::escapeChar($value $isint $istrim);
             }
         } elseif ($isint) {
             $mixed = (int) $mixed;
         } elseif (!is_numeric($mixed) && ($istrim ? $mixed = trim($mixed) : $mixed) && $mixed) {
             $mixed = S::escapeStr($mixed);
         }
         return $mixed;
     }
     /**
      * 字符轉換
      * @param $string
      * @return string
      */
     function escapeStr($string) {
         $string = str_replace(array("""%""r") $string); //modified@
         $string = preg_replace(array(/[xxxBxCxExF]//&(?!(#[]+|[az]+);)/is) array( &) $string);
         $string = str_replace(array("%C"<) < $string);
         $string = str_replace(array("%E">) > $string);
         $string = str_replace(array(""""t"  ) array("      ) $string);
         return $string;
     }
     /**
      * 變量檢查
      * @param $var
      */
     function checkVar(&$var) {
         if (is_array($var)) {
             foreach ($var as $key => $value) {
                 S::checkVar($var[$key]);
             }
         } elseif (P_W != admincp) {
             $var = str_replace(array()<=) array()<=) $var);
         } elseif (str_replace(array(<iframe<meta<script) $var) != $var) {
             global $basename;
             $basename = javascript:historygo();;
             adminmsg(word_error);
         }
     }


From:http://tw.wingwit.com/Article/program/PHP/201311/21225.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.