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执行速度全攻略(上)
Oct 09 PHP
PHP+APACHE实现用户论证的方法
Oct 09 PHP
PHP通过COM使用ADODB的简单例子
Dec 31 PHP
据说是雅虎的一份PHP面试题附答案
Jan 07 PHP
PHP 生成的XML以FLASH获取为乱码终极解决
Aug 07 PHP
php学习笔记 php中面向对象三大特性之一[封装性]的应用
Jun 13 PHP
如何获知PHP程序占用多少内存(memory_get_usage)
Sep 23 PHP
Laravel与CI框架中截取字符串函数
May 08 PHP
修改Laravel5.3中的路由文件与路径
Aug 10 PHP
php 开发中加密的几种方法总结
Mar 22 PHP
PHP检查网站是否宕机的方法示例
Jul 24 PHP
php表单习惯用的正则表达式
Oct 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时间戳与日期的转换
2013/06/06 PHP
php文字水印和php图片水印实现代码(二种加水印方法)
2013/12/25 PHP
PHP实现的英文名字全拼随机排号脚本
2014/07/04 PHP
如何通过Linux命令行使用和运行PHP脚本
2015/07/29 PHP
jquery中对表单的基本操作代码
2010/07/29 Javascript
jQuery 常见操作实现方式和常用函数方法总结
2011/05/06 Javascript
基于Jquery+Ajax+Json实现分页显示附效果图
2014/07/30 Javascript
jQuery跨域问题解决方案
2015/08/03 Javascript
JS实现响应鼠标点击动画渐变弹出层效果代码
2016/03/25 Javascript
基于JavaScript实现Tab选项卡切换效果
2016/11/24 Javascript
利用js查找数组中指定元素并返回该元素的所有索引示例
2017/03/29 Javascript
mpvue中使用flyjs全局拦截的实现代码
2018/09/13 Javascript
JavaScript如何获取一个元素的样式信息
2019/07/29 Javascript
vue-cli创建的项目中的gitHooks原理解析
2020/02/14 Javascript
解决vue刷新页面以后丢失store的数据问题
2020/08/11 Javascript
python进阶教程之文本文件的读取和写入
2014/08/29 Python
python实现机器人行走效果
2018/01/29 Python
Python简单实现网页内容抓取功能示例
2018/06/07 Python
Python采集猫眼两万条数据 对《无名之辈》影评进行分析
2018/12/05 Python
python+opencv实现高斯平滑滤波
2020/07/21 Python
Python匿名函数及应用示例
2019/04/09 Python
Pytorch Tensor 输出为txt和mat格式方式
2020/01/03 Python
pytorch三层全连接层实现手写字母识别方式
2020/01/14 Python
python实现单张图像拼接与批量图片拼接
2020/03/23 Python
快速解决Django关闭Debug模式无法加载media图片与static静态文件
2020/04/07 Python
CSS3属性background-size使用指南
2014/12/09 HTML / CSS
配置H5的滚动条样式的示例代码
2018/03/09 HTML / CSS
AE美国鹰日本官方网站: American Eagle Outfitters
2016/12/10 全球购物
Hotels.com台湾:饭店订房网
2017/09/06 全球购物
动物科学专业毕业生的自我评价
2013/11/29 职场文书
专营店会计助理岗位职责
2013/11/29 职场文书
爱岗敬业演讲稿范文
2014/01/14 职场文书
周一早安温馨问候祝福语!
2019/07/15 职场文书
纯html+css实现奥运五环的示例代码
2021/08/02 HTML / CSS
排查并解决MySQL生产库内存使用率高的报警
2022/04/11 MySQL
JavaScript实现一键复制内容剪贴板
2022/07/23 Javascript