比较好用的PHP防注入漏洞过滤函数代码
2016-03-15 19:12
791 查看
<?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; } ?>
相关文章推荐
- yii2后台上传图片,前台也能显示 的方法
- yii2.0 的数据的 查 删
- thinkphp 使用cli方式刷脚本
- vsftpd.conf文件说明
- PHPUnit单元测试
- PHP7.0新增功能详解
- PHP中常量的定义
- yii2.0 的数据的 改
- 安卓第十四天笔记-内容提供者(ContentProvider)
- PHP中Heredoc结构形式
- PHP上传文件大小限制解决方案
- onethink搭建
- phpstorm小总结
- PHP 返回近7天 本月 上月日期
- yii2.0 的数据的 增
- /ThinkPHP/Library/Think/Storage/Driver/File.class.php LINE: 48
- PHP 快速排序法
- 1 #安装php
- ThinkPHP之add、save无法添加、修改的解决方案
- 使用cmd命令行方式登录ftp上传下载数据