通俗易懂的php防注入代码


Posted in PHP onApril 07, 2010

介绍两种方法吧,首先请把以下代码保存为safe.php放在网站根目录下,然后在每个php文件前加include(“/safe.php“);即可 :

php防注入代码方法一:

<?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; 
} 
} 
?>

php防注入代码方法二:
/* 过滤所有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 相关文章推荐
ThinkPHP php 框架学习笔记
Oct 30 PHP
PHP基础知识回顾
Aug 16 PHP
屏蔽机器人从你的网站搜取email地址的php代码
Nov 14 PHP
php设计模式之命令模式使用示例
Mar 02 PHP
php中字符查找函数strpos、strrchr与strpbrk用法
Nov 18 PHP
thinkphp表单上传文件并将文件路径保存到数据库中
Jul 28 PHP
PHP大神的十大优良习惯
Sep 14 PHP
PHP实现多级分类生成树的方法示例
Feb 07 PHP
PHP实现一个多功能购物网站的案例
Sep 13 PHP
php通过各种函数判断0和空
Jul 04 PHP
Yii框架Session与Cookie使用方法示例
Oct 14 PHP
laravel框架中表单请求类型和CSRF防护实例分析
Nov 23 PHP
Ext.data.PagingMemoryProxy分页一次性读取数据的实现代码
Apr 07 #PHP
用PHP实现读取和编写XML DOM代码
Apr 07 #PHP
php session和cookie使用说明
Apr 07 #PHP
DedeCMS dede_channeltype表字段注释
Apr 07 #PHP
php抓取https的内容的代码
Apr 06 #PHP
php中几种常见安全设置详解
Apr 06 #PHP
PHP 检查扩展库或函数是否可用的代码
Apr 06 #PHP
You might like
DC《神奇女侠2》因疫情推迟上映 温子仁新恐怖片《恶性》撤档
2020/04/09 欧美动漫
PHP+DBM的同学录程序(2)
2006/10/09 PHP
ThinkPHP中使用Ueditor富文本编辑器
2015/09/02 PHP
Javascript 复制数组实现代码
2009/11/26 Javascript
jQuery实现页面滚动时层智能浮动定位实例探讨
2013/03/29 Javascript
js日期相关函数总结分享
2013/10/15 Javascript
JS中FRAME的操作问题实例分析
2014/10/21 Javascript
js中的json对象详细介绍
2014/10/29 Javascript
javascript实现根据时间段显示问候语的方法
2015/06/18 Javascript
你不知道的高性能JAVASCRIPT
2016/01/18 Javascript
JQuery fileupload插件实现文件上传功能
2016/03/18 Javascript
jQuery中使用animate自定义动画的方法
2016/05/29 Javascript
jQuery操作复选框(CheckBox)的取值赋值实现代码
2017/01/10 Javascript
开发Vue树形组件的示例代码
2017/12/21 Javascript
详解基于Vue2.0实现的移动端弹窗(Alert, Confirm, Toast)组件
2018/08/02 Javascript
js 实现碰撞检测的示例
2020/10/28 Javascript
[05:17]DOTA2睡衣妹卖萌求签名 CJ第二天全明星影像
2013/07/28 DOTA
[46:14]VGJ.T vs Liquid 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
深入解析Python中的__builtins__内建对象
2016/06/21 Python
python文件操作之批量修改文件后缀名的方法
2018/08/10 Python
Django REST framework视图的用法
2019/01/16 Python
Python中私有属性的定义方式
2020/03/05 Python
Python实现Excel自动分组合并单元格
2021/02/22 Python
html5中的一些标签学习(心得)
2016/10/18 HTML / CSS
html5 canvas 实现光线沿不规则路径运动
2020/04/20 HTML / CSS
美国电力供应商店/电气批发商:USESI
2018/10/12 全球购物
匡威德国官网:Converse德国
2019/01/26 全球购物
中国领先的汽车保养服务平台:途虎养车
2019/10/18 全球购物
德语专业求职信
2014/03/12 职场文书
岗位廉洁从业承诺书
2014/03/28 职场文书
通信工程求职信
2014/07/16 职场文书
机修车间主任岗位职责
2015/04/08 职场文书
如何使用 resize 实现图片切换预览功能
2021/08/23 HTML / CSS
Redis实现订单过期删除的方法步骤
2022/06/05 Redis
MySQL慢查询中的commit慢和binlog中慢事务的区别
2022/06/16 MySQL
Python编写车票订购系统 Python实现快递收费系统
2022/08/14 Python