比较好用的PHP防注入漏洞过滤函数代码


Posted in PHP onApril 11, 2012
<?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 ); 
// 3water.com 进行过滤,防注入 
} 
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; 
} 
?>
PHP 相关文章推荐
PHP生成唯一的促销/优惠/折扣码(附源码)
Dec 28 PHP
php安全开发 添加随机字符串验证,防止伪造跨站请求
Feb 14 PHP
php利用腾讯ip分享计划获取地理位置示例分享
Jan 20 PHP
在Yii框架中使用PHP模板引擎Twig的例子
Jun 13 PHP
5款适合PHP使用的HTML编辑器推荐
Jul 03 PHP
ThinkPHP进程计数类Process用法实例详解
Sep 25 PHP
PHP中Http协议post请求参数
Nov 02 PHP
php reset() 函数指针指向数组中的第一个元素并输出实例代码
Nov 21 PHP
PHP仿tp实现mvc框架基本设计思路与实现方法分析
May 23 PHP
PHP实现的解汉诺塔问题算法示例
Aug 06 PHP
CI框架附属类用法分析
Dec 26 PHP
Laravel使用swoole实现websocket主动消息推送的方法介绍
Oct 20 PHP
PHP 杂谈《重构-改善既有代码的设计》之四 简化条件表达式
Apr 09 #PHP
PHP 杂谈《重构-改善既有代码的设计》之三 重新组织数据
Apr 09 #PHP
PHP 杂谈《重构-改善既有代码的设计》之一 重新组织你的函数
Apr 09 #PHP
PHP乱码问题,UTF-8乱码常见问题小结
Apr 09 #PHP
PHP中return 和 exit 、break和contiue 区别与用法
Apr 09 #PHP
php 的加密函数 md5,crypt,base64_encode 等使用介绍
Apr 09 #PHP
PHP压缩html网页代码(清除空格,换行符,制表符,注释标记)
Apr 02 #PHP
You might like
php四种基础算法代码实例
2013/10/29 PHP
ThinkPHP CURD方法之table方法详解
2014/06/18 PHP
PHP队列用法实例
2014/11/05 PHP
php同时使用session和cookie来保存用户登录信息的实现代码
2016/05/13 PHP
CI框架集成Smarty的方法分析
2016/05/17 PHP
Laravel中日期时间处理包Carbon的简单使用
2017/09/21 PHP
laravel5.1框架model类查询的实现方法
2019/10/08 PHP
laravel框架邮箱认证实现方法详解
2019/11/22 PHP
js以对象为索引的关联数组
2010/07/04 Javascript
js实现的跟随鼠标移动的时钟效果(中英文日期显示)
2011/01/17 Javascript
jquery实现更改表格行顺序示例
2014/04/30 Javascript
angularJS结合canvas画图例子
2015/02/09 Javascript
不同编码的页面表单数据乱码问题解决方法
2015/02/15 Javascript
关于javascript中dataset的问题小结
2015/11/16 Javascript
快速学习jQuery插件 jquery.validate.js表单验证插件使用方法
2015/12/01 Javascript
理解jquery事件冒泡
2016/01/03 Javascript
js一维数组、多维数组和对象的混合使用方法
2016/04/03 Javascript
JS HTML5实现拖拽移动列表效果
2020/08/27 Javascript
Ajax+FormData+javascript实现无刷新表单信息提交
2016/10/24 Javascript
微信小程序(应用号)开发新闻客户端实例
2016/10/24 Javascript
Angular实现跨域(搜索框的下拉列表)
2017/02/16 Javascript
Angular2 Service实现简单音乐播放器服务
2017/02/24 Javascript
微信小程序开发入门基础教程
2017/04/19 Javascript
详解tween.js的使用教程
2017/09/14 Javascript
微信小程序实时聊天WebSocket
2018/07/05 Javascript
JavaScript实现多态和继承的封装操作示例
2018/08/20 Javascript
mpvue 项目初始化及实现授权登录的实现方法
2020/07/20 Javascript
在 Django/Flask 开发服务器上使用 HTTPS
2014/07/03 Python
python编程之requests在网络请求中添加cookies参数方法详解
2017/10/25 Python
pygame游戏之旅 添加碰撞效果的方法
2018/11/20 Python
浅谈Python编程中3个常用的数据结构和算法
2019/04/30 Python
使用SQLAlchemy操作数据库表过程解析
2020/06/10 Python
Python将list元素转存为CSV文件的实现
2020/11/16 Python
房地产销售大学生自我评价分享
2013/11/11 职场文书
倡议书格式及范文
2015/04/29 职场文书
四群教育工作总结
2015/08/10 职场文书