PHP防注入安全代码


Posted in PHP onApril 09, 2008

简述:/*************************   
说明:   
判断传递的变量中是否含有非法字符   
如$_POST、$_GET   
功能:防注入   
**************************/      

<?php      //要过滤的非法字符      
$ArrFiltrate=array("'",";","union");      
//出错后要跳转的url,不填则默认前一页      
$StrGoUrl="";      
//是否存在数组中的值      
function FunStringExist($StrFiltrate,$ArrFiltrate){      
foreach ($ArrFiltrate as $key=>$value){      
  if (eregi($value,$StrFiltrate)){      
    return true;      
  }      
}      
return false;      
}      
//合并$_POST 和 $_GET      
if(function_exists(array_merge)){      
  $ArrPostAndGet=array_merge($HTTP_POST_VARS,$HTTP_GET_VARS);      
}else{      
  foreach($HTTP_POST_VARS as $key=>$value){      
    $ArrPostAndGet[]=$value;      
  }      
  foreach($HTTP_GET_VARS as $key=>$value){      
    $ArrPostAndGet[]=$value;      
  }      
}      
//验证开始      
foreach($ArrPostAndGet as $key=>$value){      
  if (FunStringExist($value,$ArrFiltrate)){      
    echo "<script language=\"javascript\">alert(\"非法字符\");</script>";      
    if (emptyempty($StrGoUrl)){      
    echo "<script language=\"javascript\">history.go(-1);</script>";      
    }else{      
    echo "<script language=\"javascript\">window.location=\"".$StrGoUrl."\";</script>";      
    }      
    exit;      
  }      
}      
?> 
    

保存为checkpostandget.php     
然后在每个php文件前加include(“checkpostandget.php“);即可     

方法2     

/* 过滤所有GET过来变量 */     
foreach ($_GET as $get_key=>$get_var)      
{      
if (is_numeric($get_var)) {      
  $get[strtolower($get_key)] = get_int($get_var);      
} else {      
  $get[strtolower($get_key)] = get_str($get_var);      
}      
}      /* 过滤所有POST过来的变量 */     
foreach ($_POST as $post_key=>$post_var)      
{      
if (is_numeric($post_var)) {      
  $post[strtolower($post_key)] = get_int($post_var);      
} else {      
  $post[strtolower($post_key)] = get_str($post_var);      
}      
}      
/* 过滤函数 */     
//整型过滤函数      
function get_int($number)      
{      
    return intval($number);      
}      
//字符串型过滤函数      
function get_str($string)      
{      
    if (!get_magic_quotes_gpc()) {      
return addslashes($string);      
    }      
    return $string;      
}
       
PHP 相关文章推荐
解析在PHP中使用mysqli扩展库对mysql的操作
Jul 03 PHP
php函数指定默认值方法的小例子
Dec 04 PHP
php图片处理函数获取类型及扩展名实例
Nov 19 PHP
ThinkPHP独立分组使用的注意事项
Nov 25 PHP
php自动更新版权信息显示的方法
Jun 19 PHP
解决yii2左侧菜单子级无法高亮问题的方法
May 08 PHP
PHP7 新特性详细介绍
Sep 06 PHP
/etc/php-fpm.d/www.conf 配置注意事项
Feb 04 PHP
PHP连接MYSQL数据库的3种常用方法
Feb 27 PHP
PHP单例模式模拟Java Bean实现方法示例
Dec 07 PHP
PHP的mysqli_stmt_init()函数讲解
Jan 24 PHP
Laravel 模型使用软删除-左连接查询-表起别名示例
Oct 24 PHP
PHP中用header图片地址 简单隐藏图片源地址
Apr 09 #PHP
PHP中的extract的作用分析
Apr 09 #PHP
如何在PHP程序中防止盗链
Apr 09 #PHP
php的access操作类
Apr 09 #PHP
php时间不正确的解决方法
Apr 09 #PHP
php Ajax乱码
Apr 09 #PHP
PHP提取中文首字母
Apr 09 #PHP
You might like
使用ThinkPHP自带的Http类下载远程图片到本地的实现代码
2011/08/02 PHP
解析PHP实现下载文件的两种方法
2013/07/05 PHP
php上传文件中文文件名乱码的解决方法
2013/11/01 PHP
php实现aes加密类分享
2014/02/16 PHP
Zend Framework入门应用实例详解
2016/12/11 PHP
复制js对象方法(详解)
2013/07/08 Javascript
通过js获取div的background-image属性
2013/10/15 Javascript
javascript break指定标签打破多层循环示例
2014/01/20 Javascript
js下将阿拉伯数字每三位一逗号分隔(如:15000000转化为15,000,000)
2014/06/02 Javascript
Jquery判断radio、selelct、checkbox是否选中及获取选中值方法总结
2015/04/15 Javascript
jQuery实现平滑滚动的标签分栏切换效果
2015/08/28 Javascript
js密码强度校验
2015/11/10 Javascript
Uploadify上传文件方法
2016/03/16 Javascript
Javascript之面向对象--接口
2016/12/02 Javascript
webpack优化的深入理解
2018/12/10 Javascript
详解Vue iview IE浏览器不兼容报错(Iview Bable polyfill)
2019/01/07 Javascript
[01:35]辉夜杯战队访谈宣传片—LGD
2015/12/25 DOTA
[50:38]DOTA2-DPC中国联赛 正赛 Phoenix vs CDEC BO3 第二场 3月7日
2021/03/11 DOTA
Go语言基于Socket编写服务器端与客户端通信的实例
2016/02/19 Python
判断python对象是否可调用的三种方式及其区别详解
2019/01/31 Python
OpenCV 轮廓检测的实现方法
2019/07/03 Python
简单瞅瞅Python vars()内置函数的实现
2019/09/27 Python
AMAVII眼镜官网:时尚和设计师太阳镜
2019/05/05 全球购物
瑞士首家网上药店折扣店:McDrogerie
2020/12/22 全球购物
介绍一下EJB的体系结构
2012/08/01 面试题
用JAVA实现一种排序,JAVA类实现序列化的方法(二种)
2014/04/23 面试题
军校本科大学生自我评价
2014/01/14 职场文书
新学期家长寄语
2014/01/19 职场文书
幼儿园校车司机的岗位职责
2014/01/30 职场文书
公司司机岗位职责范本
2014/03/03 职场文书
管理建议书范文
2014/05/13 职场文书
2014年党支部承诺书
2014/05/30 职场文书
中秋手机店促销方案
2014/06/16 职场文书
政风行风评议个人心得体会
2014/10/29 职场文书
2019学生会干事辞职信
2019/06/27 职场文书
Nginx禁止ip访问或非法域名访问
2022/04/07 Servers