网络安全

位置:IT落伍者 >> 网络安全 >> 浏览文章

PHP 安全检测代码片段(分享)


发布日期:2019年01月22日
 
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);
}
}

               

上一篇:11种php编程典型安全隐患及处理

下一篇:如何书写安全的PHP代码[1]