PHP 安全檢測(cè)代碼片段(分享)
更新時(shí)間:2013年07月05日 09:25:42 作者:
本篇文章是對(duì)PHP安全檢測(cè)代碼的片段進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
復(fù)制代碼 代碼如下:
/**
* html轉(zhuǎn)換輸出(只轉(zhuǎn)義' " 保留Html正常運(yùn)行)
* @param $param
* @return string
*/
function htmlEscape($param) {
return trim(htmlspecialchars($param, ENT_QUOTES));
}
/**
* 是否數(shù)組(同時(shí)檢測(cè)數(shù)組中是否存在值)
* @param $params
* @return boolean
*/
function isArray($params) {
return (!is_array($params) || !count($params)) ? false : true;
}
/**
* 變量是否在數(shù)組中存在(參數(shù)容錯(cuò), 字符串是否存在于數(shù)組中)
* @param $param
* @param $params
* @return boolean
*/
function inArray($param, $params) {
return (!in_array((string)$param, (array)$params)) ? false : true;
}
/**
* 通用多類型混合轉(zhuǎn)義函數(shù)
* @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) . "' ";
}
}
/**
* 獲取服務(wù)器變量
* @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];
}
/**
* 變量轉(zhuǎn)義
* @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);
}
}
}
}
/**
* 目錄轉(zhuǎn)換
* @param unknown_type $dir
* @return string
*/
function escapeDir($dir) {
$dir = str_replace(array("'",'#','=','`','$','%','&',';'), '', $dir);
return rtrim(preg_replace('/(\/){2,}|(\\\){1,}/', '/', $dir), '/');
}
/**
* 通用多類型轉(zhuǎn)換
* @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;
}
/**
* 字符轉(zhuǎn)換
* @param $string
* @return string
*/
function escapeStr($string) {
$string = str_replace(array("\0","%00","\r"), '', $string); //modified@2010-7-5
$string = preg_replace(array('/[\\x00-\\x08\\x0B\\x0C\\x0E-\\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');
}
}
相關(guān)文章
php 數(shù)組操作(增加,刪除,查詢,排序)等函數(shù)說明
php 數(shù)組增加,刪除,查詢,排序詳細(xì)說明,需要的朋友可以參考下。2010-05-05JS與PHP向函數(shù)傳遞可變參數(shù)的區(qū)別實(shí)例代碼
JS與PHP向函數(shù)傳遞可變參數(shù)的區(qū)別實(shí)例代碼,需要的朋友可以參考下。2011-05-05PHP里面把16進(jìn)制的圖片數(shù)據(jù)顯示在html的img標(biāo)簽上(實(shí)現(xiàn)方法)
下面小編就為大家?guī)硪黄狿HP里面把16進(jìn)制的圖片數(shù)據(jù)顯示在html的img標(biāo)簽上(實(shí)現(xiàn)方法)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-05-05php之使用docker運(yùn)行workerman案例講解
這篇文章主要介紹了php之使用docker運(yùn)行workerman案例講解,本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-08-08基于magic_quotes_gpc與magic_quotes_runtime的區(qū)別與使用介紹
本篇文章小編為大家介紹,基于magic_quotes_gpc與magic_quotes_runtime的區(qū)別與使用介紹。需要的朋友參考下2013-04-04