php 禁止用注入函数,PHP防注入函数代码总结_PHP教程

/*

函数名称:post_check()

函数作用:对提交的编辑内容进行处理

参  数:$post: 要提交的内容

返 回 值:$post: 返回过滤后的内容

*/

function post_check($post) {

if (! get_magic_quotes_gpc ()) { // 判断magic_quotes_gpc是否为打开

$post = addslashes ( $post ); // 进行magic_quotes_gpc没有打开的情况对提交数据的过滤

}

$post = str_replace ( "_", "_", $post ); // 把 '_'过滤掉

$post = str_replace ( "%", "%", $post ); // 把 '%'过滤掉

$post = nl2br ( $post ); // 回车转换

$post = htmlspecialchars ( $post ); // html标记转换

return $post;

}

/*

函数名称:inject_check()

函数作用:检测提交的值是不是含有SQL注射的字符,防止注射,保护服务器安全

参  数:$sql_str: 提交的变量

返 回 值:返回检测结果,ture or false

*/

function inject_check($sql_str) {

return eregi('select|insert|and|or|update|delete|'|/*|*|../|./|union|into|load_file|outfile', $sql_str); // 进行过滤

}

/*

函数名称:verify_id()

函数作用:校验提交的ID类值是否合法

参  数:$id: 提交的ID值

返 回 值:返回处理后的ID

*/

function verify_id($id=null) {

if (!$id) { exit('没有提交参数!'); } // 是否为空判断

elseif (inject_check($id)) { exit('提交的参数非法!'); } // 注射判断

elseif (!is_numeric($id)) { exit('提交的参数非法!'); } // 数字判断

$id = intval($id); // 整型化

return $id;

}

// $rptype = 0 表示仅替换 html标记

// $rptype = 1 表示替换 html标记同时去除连续空白字符

// $rptype = 2 表示替换 html标记同时去除所有空白字符

// $rptype = -1 表示仅替换 html危险的标记

function HtmlReplace($str, $rptype = 0) {

$str = stripslashes ( $str );

if ($rptype == 0) {

$str = htmlspecialchars ( $str );

} else if ($rptype == 1) {

$str = htmlspecialchars ( $str );

$str = str_replace ( " ", ' ', $str );

$str = ereg_replace ( "[rnt ]{1,}", ' ', $str );

} else if ($rptype == 2) {

$str = htmlspecialchars ( $str );

$str = str_replace ( " ", '', $str );

$str = ereg_replace ( "[rnt ]", '', $str );

} else {

$str = ereg_replace ( "[rnt ]{1,}", ' ', $str );

$str = eregi_replace ( 'script', 'script', $str );

$str = eregi_replace ( "]*>", '', $str );

}

return addslashes ( $str );

}

//递归ddslashes

function daddslashes($string, $force = 0, $strip = FALSE) {

if (! get_magic_quotes_gpc () || $force) {

if (is_array ( $string )) {

foreach ( $string as $key => $val ) {

$string [$key] = daddslashes ( $val, $force );

}

} else {

$string = addslashes ( $strip ? stripslashes ( $string ) : $string );

}

}

return $string;

}

//递归stripslashes

function dstripslashes($string) {

if (is_array ( $string )) {

foreach ( $string as $key => $val ) {

$string [$key] = $this->dstripslashes ( $val );

}

} else {

$string = stripslashes ( $string );

}

return $string;

}

/**

* 安全过滤函数

* @param $string 要过滤的字符串

* @return string 返回处理过的字符串

*/

function safe_replace($string) {

$string = str_replace('%20','',$string);

$string = str_replace('%27','',$string);

$string = str_replace('%2527','',$string);

$string = str_replace('*','',$string);

$string = str_replace('"','"',$string);

$string = str_replace("'",'',$string);

$string = str_replace('"','',$string);

$string = str_replace(';','',$string);

$string = str_replace('

$string = str_replace('>','>',$string);

$string = str_replace("{",'',$string);

$string = str_replace('}','',$string);

return $string;

}

/**

* 使用htmlspecialchars处理字符串或数组

* @param $obj 需要处理的字符串或数组

* @return mixed 返回经htmlspecialchars处理过的字符串或数组

*/

function new_htmlspecialchars($string) {

if(!is_array($string))

return htmlspecialchars($string);

foreach($string as $key => $val)

$string[$key] = new_htmlspecialchars($val);

return $string;

}

//处理禁用HTML但允许换行的内容

function TrimMsg($msg) {

$msg = trim ( stripslashes ( $msg ) );

$msg = nl2br ( htmlspecialchars ( $msg ) );

$msg = str_replace ( " ", " ", $msg );

return addslashes ( $msg );

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值