通俗易懂的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 相关文章推荐
提升PHP执行速度全攻略(上)
Oct 09 PHP
php防注
Jan 15 PHP
php数组(array)输出的三种形式详解
Jun 05 PHP
php抽奖小程序的实现代码
Jun 18 PHP
浅析ThinkPHP中execute和query方法的区别
Jun 13 PHP
php比较相似字符串的方法
Jun 05 PHP
深入浅析PHP的session反序列化漏洞问题
Jun 15 PHP
PHP实现深度优先搜索算法(DFS,Depth First Search)详解
Sep 16 PHP
phpcms实现验证码替换及phpcms实现全站搜索功能教程详解
Dec 13 PHP
thinkPHP5框架实现基于ajax的分页功能示例
Jun 12 PHP
PHP CURL使用详解
Mar 21 PHP
php 利用socket发送GET,POST请求的实例代码
Jul 04 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
php调用nginx的mod_zip模块打包ZIP文件
2014/06/11 PHP
php中字符集转换iconv函数使用总结
2014/10/11 PHP
PHP解压tar.gz格式文件的方法
2016/02/14 PHP
php注册审核重点解析(数据访问)
2017/05/23 PHP
Ajax+PHP实现的模拟进度条功能示例
2019/02/11 PHP
ExtJS Window 最小化的一种方法
2009/11/18 Javascript
ionic实现可滑动的tab选项卡切换效果
2020/04/15 Javascript
JavaScript使用简单正则表达式的数据验证功能示例
2017/01/13 Javascript
详解Angular2 之 结构型指令
2017/06/21 Javascript
Vue ElementUI之Form表单验证遇到的问题
2017/08/21 Javascript
js Math数学简单使用操作示例
2020/03/13 Javascript
vue.js 解决v-model让select默认选中不生效的问题
2020/07/28 Javascript
[01:06:12]VP vs NIP 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
python中正则的使用指南
2016/12/04 Python
微信跳一跳自动运行python脚本
2018/01/08 Python
Python自定义简单图轴简单实例
2018/01/08 Python
使用C++扩展Python的功能详解
2018/01/12 Python
django 使用全局搜索功能的实例详解
2019/07/18 Python
Python中Selenium模块的使用详解
2020/10/09 Python
html5 canvas绘制矩形和圆形的实例代码
2016/06/16 HTML / CSS
HTML5中的Web Notification桌面通知功能的实现方法
2019/07/29 HTML / CSS
沙特阿拉伯网上购物:Sayidaty Mall
2018/05/06 全球购物
时尚圣经:The Fashion Bible
2019/03/03 全球购物
波兰在线体育用品商店:Hop-Sport.pl
2019/07/23 全球购物
美国最大的烧烤架和户外生活用品专业零售商:Barbeques Galore
2021/01/09 全球购物
俄罗斯购买自行车网站:Vamvelosiped
2021/01/29 全球购物
公关关系专员的自我评价分享
2013/11/20 职场文书
给酒店员工的表扬信
2014/01/11 职场文书
最新创业融资计划书
2014/01/19 职场文书
青春无悔演讲稿
2014/05/08 职场文书
素质教育标语
2014/06/27 职场文书
党员个人对照检查材料思想汇报
2014/09/16 职场文书
公司优秀员工推荐信
2015/03/24 职场文书
红高粱观后感
2015/06/10 职场文书
导游词之河北白洋淀
2020/01/15 职场文书
Spring Data JPA框架Repository自定义实现
2022/04/28 Java/Android