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 socket方式提交的post详解
Jul 19 PHP
ajax+php打造进度条代码[readyState各状态说明]
Apr 12 PHP
晋城吧对DiscuzX进行的前端优化要点
Sep 05 PHP
PHP设计模式之结构模式的深入解析
Jun 13 PHP
destoon供应信息title调用出公司名称的方法
Aug 22 PHP
php获取客户端电脑屏幕参数的方法
Jan 09 PHP
WordPress中获取指定分类及其子分类下的文章数目
Dec 31 PHP
php利用递归实现删除文件目录的方法
Sep 23 PHP
如何直接访问php实例对象中的private属性详解
Oct 12 PHP
PHP 计算两个特别大的整数实例代码
May 07 PHP
PHP递归算法的简单实例
Feb 28 PHP
PHP实现与java 通信的插件使用教程
Aug 11 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
php 中文和编码判断代码
2010/05/16 PHP
PHP 的ArrayAccess接口 像数组一样来访问你的PHP对象
2010/10/12 PHP
php file_get_contents抓取Gzip网页乱码的三种解决方法
2013/11/12 PHP
php中session使用示例
2014/03/29 PHP
详解php与ethereum客户端交互
2018/04/28 PHP
总结PHP中初始化空数组的最佳方法
2019/02/13 PHP
PHP使用phpunit进行单元测试示例
2019/09/23 PHP
PHP时间类完整代码实例
2021/02/26 PHP
有关javascript的性能优化 (repaint和reflow)
2013/04/12 Javascript
jQuery弹出(alert)select选择的值
2013/04/21 Javascript
顶部缓冲下拉菜单导航特效的JS代码
2013/08/27 Javascript
Javascript中各种trim的实现详细解析
2013/12/10 Javascript
解析JavaScript的ES6版本中的解构赋值
2015/07/28 Javascript
jQuery-1.9.1源码分析系列(十一)DOM操作续之克隆节点
2015/12/01 Javascript
form表单转Json提交的方法(推荐)
2016/09/23 Javascript
jQuery.ajax向后台传递数组问题的解决方法
2017/05/12 jQuery
js基于FileSaver.js 浏览器导出Excel文件的示例
2017/08/15 Javascript
Javascript实现异步编程的过程
2018/06/18 Javascript
vue-cli项目代理proxyTable配置exclude的方法
2018/09/20 Javascript
JavaScript实现HSL拾色器
2020/05/21 Javascript
JavaScript canvas实现文字时钟
2021/01/10 Javascript
python中常用的九种预处理方法分享
2016/09/11 Python
Python闭包的两个注意事项(推荐)
2017/03/20 Python
python中类的输出或类的实例输出为这种形式的原因
2019/08/12 Python
pycharm最新激活码有效期至2100年(亲测可用)
2021/02/05 Python
细说CSS3中box属性中的overflow-x属性和overflow-y属性值的效果
2014/07/21 HTML / CSS
英国绿色商店:Natural Collection
2019/05/03 全球购物
JAVA程序员面试题
2012/10/03 面试题
建筑文秘专业个人求职信范文
2013/12/28 职场文书
学校三八妇女节活动情况总结
2014/03/09 职场文书
指导老师鉴定意见
2015/06/05 职场文书
2015年社区重阳节活动总结
2015/07/30 职场文书
旅行社计调工作总结
2015/08/12 职场文书
小学教师教学反思
2016/02/24 职场文书
Python人工智能之混合高斯模型运动目标检测详解分析
2021/11/07 Python
win10重装系统后上不了网怎么办 win10重装系统网络故障的解决办法
2022/07/23 数码科技