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

复制代码 代码如下:

<?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;
}
?>

时间: 2024-10-02 18:41:54

比较好用的PHP防注入漏洞过滤函数代码_php实例的相关文章

PHP代码网站如何防范SQL注入漏洞攻击建议分享_php技巧

黑客通过SQL注入攻击可以拿到网站数据库的访问权限,之后他们就可以拿到网站数据库中所有的数据,恶意的黑客可以通过SQL注入功能篡改数据库中的数据甚至会把数据库中的数据毁坏掉.做为网络开发者的你对这种黑客行为恨之入骨,当然也有必要了解一下SQL注入这种功能方式的原理并学会如何通过代码来保护自己的网站数据库.今天就通过PHP和MySQL数据库为例,分享一下我所了解的SQL注入攻击和一些简单的防范措施和一些如何避免SQL注入攻击的建议. 什么是SQL注入(SQL Injection)? 简单来说,SQ

PHP 防注入安全实现程序代码

最常用见的可能就是 首先将magic_quotes_gpc设置为On,display_errors设置为Off,如果id型,我们利用intval()将其转换成整数类型,如代码: $id=intval($id); 好了下面我来介绍php提交数据过滤的基本原则  1)提交变量进数据库时,我们必须使用addslashes()进行过滤,像我们的注入问题,一个addslashes()也就搞定了.其实在涉及到变量取值时,intval()函数对字符串的过滤也是个不错的选择. 2)在php.ini中开启magi

简单PHP防注入内容过滤方法

方法一,过滤一些没用的内容 过滤没用的信息比较严格,有用的可能也输入不进去,可以从网上找找其他的过滤方法:  代码如下 复制代码 function checkHtml($data){   $ret  = preg_match("/['.,:;*?~`!@#$%^&+=)(<>{}]|]|[|/|\|"||/",$data);   if ($ret == 1) {     return false; exit;   } else {     return t

在PHP中使用FastCGI解析漏洞及修复方案_php实例

漏洞描述: Nginx默认是以CGI的方式支持PHP解析的,普遍的做法是在Nginx配置文件中通过正则匹配设置SCRIPT_FILENAME.当访问yun_qi_img/phpinfo.jpg/1.php这个URL时,$fastcgi_script_name会被设置为"phpinfo.jpg/1.php",然后构造成SCRIPT_FILENAME传递给PHP CGI.如果PHP中开启了fix_pathinfo这个选项,PHP会认为SCRIPT_FILENAME是phpinfo.jpg,

sql注入与转义的php函数代码_php技巧

sql注入: 正常情况下: delete.php?id=3; $sql = 'delete from news where id = '.$_GET['id']; 恶意情况: delete.php?id=3 or 1; $sql = 'delete from news where id = 3 or 1';  -------如此执行后,所有的记录将都被删除 应该采取相关措施...比如用之前先判断是否是数字等等. 要使自己相信,从客户端传来的信息永远是不可靠的!! 转义: 有时候从客户端传来的数据

一个全面的PHP整站防注入程序

SQL注入攻击的总体思路 ·发现SQL注入位置: ·判断后台数据库类型: ·确定XP_CMDSHELL可执行情况 ·发现WEB虚拟目录 ·上传ASP,php,jsp木马: ·得到管理员权限: <?PHP //PHP整站防注入程序,需要在公共文件中require_once本文件 //判断magic_quotes_gpc状态  代码如下 复制代码 if (@get_magic_quotes_gpc ()) { $_GET = sec ( $_GET ); $_POST = sec ( $_POST

php防注入

防注入 /*************************说明:判断传递的变量中是否含有非法字符如$_POST.$_GET功能:防注入**************************/ //要过滤的非法字符$ArrFiltrate=array("'",";","union");//出错后要跳转的url,不填则默认前一页$StrGoUrl="";//是否存在数组中的值function FunStringExist($Str

简单实用的PHP防注入类实例_php技巧

本文实例讲述了简单实用的PHP防注入类.分享给大家供大家参考.具体如下: PHP防注入注意要过滤的信息基本是get,post,然后对于sql就是我们常用的查询,插入等等sql命令了,下面我给各位整理两个简单的例子,希望这些例子能给你网站带来安全. PHP防注入类代码如下: 复制代码 代码如下: <?php /**  * 参数处理类  * @author JasonWei  */ class Params {     public $get = array();       public $pos

PHP 过滤表单提交特殊字符(防注入)

下面针对常用表单特殊字符处理进行总结: 测试字符串:  代码如下 复制代码 $dbstr='D:test <a href="http://www.111cn.net">http://www.111cn.net</a>,天缘博客 '!='1' OR '1' </DIV> <script  language="javascript" type="text/javascript">alert("