在线php代码安全检测,PHP 安全检测代码的实现方法

本文详细讲解了PHP中的安全检测技巧,包括HTML转义、数组验证、变量查找、SQL转义函数、服务器变量获取、字符转义等,适合开发者提升代码安全性。

这篇文章主要为大家详细介绍了PHP 安全检测代码的实现方法,具有一定的参考价值,可以用来参考一下。

感兴趣的小伙伴,下面一起跟随512笔记的小玲来看看吧!

代码如下:

/**

* 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("\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 = 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('..',')','

} elseif (str_replace(array('

global $basename;

$basename = 'javascript:history.go(-1);';

adminmsg('word_error');

}

}

注:关于PHP 安全检测代码的实现方法的内容就先介绍到这里,更多相关文章的可以留意512笔记的其他信息。

关键词:

您可能感兴趣的文章

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值