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的几个常用数字判断函数代码
Apr 24 PHP
关于shopex同步ucenter的redirect问题,导致script不运行
Apr 10 PHP
PHP 利用Mail_MimeDecode类提取邮件信息示例
Jan 26 PHP
php带抄送和密件抄送的邮件发送方法
Mar 20 PHP
搭建Vim为自定义的PHP开发工具的一些技巧
Dec 11 PHP
Linux php 中文乱码的快速解决方法
May 13 PHP
PHP批量修改文件名称的方法分析
Feb 27 PHP
php实现和c#一致的DES加密解密实例
Jul 24 PHP
PHP 进度条函数的简单实例
Sep 19 PHP
PHP的RSA加密解密方法以及开发接口使用
Feb 11 PHP
PHP实现常用排序算法的方法
Feb 05 PHP
tp5.0框架隐藏index.php入口文件及模块和控制器的方法分析
Feb 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无限分类代码,支持数组格式化、直接输出菜单两种方式
2011/05/18 PHP
PHP 输出URL的快捷方式示例代码
2013/09/22 PHP
PHP传值到不同页面的三种常见方式及php和html之间传值问题
2015/11/19 PHP
thinkPHP导出csv文件及用表格输出excel的方法
2015/12/30 PHP
浅谈PHP面向对象之访问者模式+组合模式
2017/05/22 PHP
PHPExcel 修改已存在Excel的方法
2018/05/03 PHP
JS getStyle获取最终样式函数代码
2010/04/01 Javascript
javascript 获取网页标题代码实例
2014/01/22 Javascript
javascript文本模板用法实例
2015/07/31 Javascript
JS动态日期时间的获取方法
2015/09/28 Javascript
JavaScript+html5 canvas实现图片破碎重组动画特效
2016/02/22 Javascript
JavaScript提升性能的常用技巧总结【经典】
2016/06/20 Javascript
基于JavaScript实现淘宝商品广告效果
2017/08/10 Javascript
NodeJs form-data格式传输文件的方法
2017/12/13 NodeJs
Ant Design moment对象和字符串之间的相互转化教程
2020/10/27 Javascript
[03:54]Ehome出征西雅图 回顾2016国际邀请赛晋级之路
2016/08/02 DOTA
[01:09:10]NB vs Liquid Supermajor小组赛 A组胜者组决赛 BO3 第一场 6.2
2018/06/04 DOTA
python装饰器decorator介绍
2014/11/21 Python
详解Python中for循环的使用方法
2015/05/14 Python
Python实现字典依据value排序
2016/02/24 Python
python 中random模块的常用方法总结
2017/07/08 Python
python 分离文件名和路径以及分离文件名和后缀的方法
2018/10/21 Python
Django中使用Celery的方法示例
2018/11/29 Python
django中SMTP发送邮件配置详解
2019/07/19 Python
python 服务器运行代码报错ModuleNotFoundError的解决办法
2020/09/16 Python
canvas压缩图片以及卡片制作的方法示例
2018/12/04 HTML / CSS
澳大利亚领先的宠物用品商店:VetSupply
2017/09/08 全球购物
英国最大的专业户外零售商:Mountain Warehouse
2018/06/06 全球购物
美国女士时尚珠宝及配饰购物网站:Icing
2018/07/02 全球购物
优秀教师演讲稿
2014/05/06 职场文书
活动总结的格式
2014/05/07 职场文书
病媒生物防治方案
2014/05/13 职场文书
节能环保口号
2014/06/12 职场文书
离婚财产处理协议书
2014/09/30 职场文书
实习生辞职信范文
2015/03/02 职场文书
mongodb数据库迁移变更的解决方案
2021/09/04 MongoDB