简体 | Eng
收藏夹
-> -> -> - >
[解决方案]主题: PHP整站防注入程序 ...   发布者: phpfans
01/28/2016
Visit:33 ,Today:1

PHP整站防注入程序

htmlspecialchars无法防注入

本函数将特殊字符转成 HTML 的字符串格式 ( &....; )。至常用到的场合可能就是处理客户留言的留言版了。

* &- ---- 转成 &

* " ---- 转成 "

* < ---- 转成 <

* > ---- 转成 >

很多程序用它做用户名过滤,本函数没过滤 ' , 空格 ( ) ; 所以SQLi仍然可以。

PHP整站防注入程序,需要在公共文件中require_once本文件,因为现在网站被注入攻击现象很严重,所以推荐大家使用

<?PHP

//PHP整站防注入程序,需要在公共文件中require_once本文件

//判断magic_quotes_gpc状态

if (@get_magic_quotes_gpc ()) {

$_GET = sec ( $_GET );

$_POST = sec ( $_POST );

$_COOKIE = sec ( $_COOKIE );

$_FILES = sec ( $_FILES );

}

$_SERVER = sec ( $_SERVER );

function sec(&$array) {

//如果是数组,遍历数组,递归调用

if (is_array ( $array )) {

foreach ( $array as $k => $v ) {

$array [$k] = sec ( $v );

}

} else if (is_string ( $array )) {

//使用addslashes函数来处理

$array = addslashes ( $array );

} else if (is_numeric ( $array )) {

$array = intval ( $array );

}

return $array;

}

//整型过滤函数

function num_check($id) {

if (! $id) {

die ( '参数不能为空!' );

} //是否为空的判断

else if (inject_check ( $id )) {

die ( '非法参数' );

} //注入判断

else if (! is_numetic ( $id )) {

die ( '非法参数' );

}

//数字判断

$id = intval ( $id );

//整型化

return $id;

}

//字符过滤函数

function str_check($str) {

if (inject_check ( $str )) {

die ( '非法参数' );

}

//注入判断

$str = htmlspecialchars ( $str );

//转换html

return $str;

}

function search_check($str) {

$str = str_replace ( "_", "\_", $str );

//把"_"过滤掉

$str = str_replace ( "%", "\%", $str );

//把"%"过滤掉

$str = htmlspecialchars ( $str );

//转换html

return $str;

}

//表单过滤函数

function post_check($str, $min, $max) {

if (isset ( $min ) && strlen ( $str ) < $min) {

die ( '至少$min字节' );

} else if (isset ( $max ) && strlen ( $str ) > $max) {

die ( '至多$max字节' );

}

return stripslashes_array ( $str );

}

//防注入函数

function inject_check($sql_str) {

return eregi ( 'select|inert|update|delete|\'|\/\*|\*|\.\.\/|\.\/|UNION|into|load_file|outfile', $sql_str );

// www.jb51.net 进行过滤,防注入

}

function stripslashes_array(&$array) {

if (is_array ( $array )) {

foreach ( $array as $k => $v ) {

$array [$k] = stripslashes_array ( $v );

}

} else if (is_string ( $array )) {

$array = stripslashes ( $array );

}

return $array;

}

?>

 
最后更新: 2016-01-28 15:37:21
  • 评判这条信息 - 欢迎发表意见/建议 : PHP整站防注入程序

    * 必须填写的信息

    优秀信息 分类错误 违禁信息 垃圾信息 过期 其它

    姓名: *
    详细内容: *
    联系电话:
    详细地址:
    邮政编码:
    电子信箱:
    网址URL:
    验证码:*
    passcode

搜索相关: 信息技术合作 - 消耗品 - 软件 - 计算机 - 邮箱、网盘 - 网络设备、配件 - 其他 - MP3 - 插卡类 - IC卡 - 电脑外设 - 软件设计 - 安全、病毒防治 - 笔记本电脑 - UPS与电源 - 主机配件 - 网络工程 - 二手设备 - 网站建设 - 服务器、工作站 - 电脑、软件

©2025 孙悟空