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 和 MySQL 基础教程(三)
Oct 09 PHP
PHP 应用程序的安全 -- 不能违反的四条安全规则
Nov 26 PHP
PHP产生随机字符串函数
Dec 06 PHP
浅析使用Turck-mmcache编译来加速、优化PHP代码
Jun 20 PHP
PHP二维数组排序的3种方法和自定义函数分享
Apr 09 PHP
PHP根据传来的16进制颜色代码自动改变背景颜色
Jun 13 PHP
php绘制一个扇形的方法
Jan 24 PHP
PHP中配置IIS7实现基本身份验证的方法
Sep 24 PHP
php表单处理操作
Nov 16 PHP
php workerman定时任务的实现代码
Dec 23 PHP
PHP封装cURL工具类与应用示例
Jul 01 PHP
aec加密 php_php aes加密解密类(兼容php5、php7)
Mar 14 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 curl post 时出现的问题解决
2014/01/30 PHP
Codeigniter注册登录代码示例
2014/06/12 PHP
Yii2搭建后台并实现rbac权限控制完整实例教程
2016/04/28 PHP
浅谈PHP发送HTTP请求的几种方式
2017/07/25 PHP
PHP利用Mysql锁解决高并发的方法
2018/09/04 PHP
JS(jQuery)实现聊天接收到消息语言自动提醒功能详解【提示“您有新的消息请注意查收”】
2019/04/16 PHP
angularJS提交表单(form)
2015/02/09 Javascript
jQuery简单实现验证邮箱格式
2015/07/15 Javascript
JavaScript仿商城实现图片广告轮播实例代码
2016/02/06 Javascript
特殊日期提示功能的实现方法
2016/06/16 Javascript
使用ionic播放轮询广告的实现方法(必看)
2017/04/24 Javascript
JavaScript使用readAsDataURL读取图像文件
2017/05/10 Javascript
实例分析js事件循环机制
2017/12/13 Javascript
vue内置指令详解
2018/04/03 Javascript
详解webpack-dev-server使用方法
2018/09/14 Javascript
详解用JS添加和删除class类名
2019/03/25 Javascript
微信小程序云开发实现数据添加、查询和分页
2019/05/17 Javascript
JS中的算法与数据结构之链表(Linked-list)实例详解
2019/08/20 Javascript
详解vue父子组件状态同步的最佳方式
2020/09/10 Javascript
详解Python中expandtabs()方法的使用
2015/05/18 Python
在Python中操作日期和时间之gmtime()方法的使用
2015/05/22 Python
python删除过期文件的方法
2015/05/29 Python
用 Python 爬了爬自己的微信朋友(实例讲解)
2017/08/25 Python
python从子线程中获得返回值的方法
2019/01/30 Python
django rest framework 过滤时间操作
2020/07/12 Python
css3图片边框border-image的用法
2017/06/30 HTML / CSS
html5 拖拽上传图片实例演示
2013/04/01 HTML / CSS
客房主管岗位职责
2013/12/09 职场文书
大学生创业感言
2014/01/25 职场文书
我们的节日端午节活动方案
2014/03/02 职场文书
学雷锋演讲稿汇总
2014/05/10 职场文书
小区推广策划方案
2014/06/06 职场文书
保安2014年终工作总结
2014/12/06 职场文书
环境保护宣传标语大全!
2019/06/28 职场文书
创业计划书之甜品店
2019/09/18 职场文书
Android 界面一键变灰 深色主题工具类
2022/04/28 Java/Android