程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP 安全檢測代碼片段(分享)

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

編輯:關於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('<','>','"',"'",'%3C','%3E','%22','%27','%3c','%3e'), '', $_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('/(/){2,}|(){1,}/', '/', $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("","%00","r"), '', $string); //modified@2010-7-5
             $string = preg_replace(array('/[x00-x08x0Bx0Cx0E-x1F]/','/&(?!(#[0-9]+|[a-z]+);)/is'), array('', '&'), $string);
             $string = str_replace(array("%3C",'<'), '<', $string);
             $string = str_replace(array("%3E",'>'), '>', $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:history.go(-1);';
                 adminmsg('word_error');
             }
         }

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved