通俗易懂的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 相关文章推荐
WINDOWS服务器安装多套PHP的另类解决方案
Oct 09 PHP
php格式化工具Beautify PHP小小BUG
Apr 24 PHP
简单示例AJAX结合PHP代码实现登录效果代码
Jul 25 PHP
基于PHP编程注意事项的小结
Apr 27 PHP
php多次include后导致全局变量global失效的解决方法
Feb 28 PHP
PHP获取数组最大值下标的方法
May 12 PHP
php生成过去100年下拉列表的方法
Jul 20 PHP
PHP获取二维数组中某一列的值集合
Dec 25 PHP
php实现图片上传时添加文字和图片水印技巧
Apr 18 PHP
PHP编程快速实现数组去重的方法详解
Jul 22 PHP
PHP中如何使用Redis接管文件存储Session详解
Nov 28 PHP
thinkphp框架无限级栏目的排序功能实现方法示例
Mar 29 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 rsa加密解密使用详解
2015/01/14 PHP
PHP利用百度ai实现文本和图片审核
2019/05/08 PHP
搭建PhpStorm+PhpStudy开发环境的超详细教程
2020/09/17 PHP
js正则表达exec与match的区别说明
2014/01/29 Javascript
深入浅出分析javaScript中this用法
2015/05/09 Javascript
javascript中的Function.prototye.bind
2015/06/25 Javascript
浅析jquery与checkbox的checked属性的问题
2016/04/27 Javascript
浅析创建javascript对象的方法
2016/05/13 Javascript
浅析JS中对函数function的理解(基础篇)
2016/10/14 Javascript
Bootstrap 轮播(Carousel)插件
2016/12/26 Javascript
解决VUEX刷新的时候出现数据消失
2017/07/03 Javascript
微信小程序中button组件的边框设置的实例详解
2017/09/27 Javascript
vue2.0+vue-router构建一个简单的列表页的示例代码
2019/02/13 Javascript
了解JavaScript中let语句
2019/05/30 Javascript
Python读写文件方法总结
2015/06/09 Python
python 第三方库的安装及pip的使用详解
2017/05/11 Python
利用OpenCV和Python实现查找图片差异
2019/12/19 Python
pandas中read_csv、rolling、expanding用法详解
2020/04/21 Python
使用PyWeChatSpy自动回复微信拍一拍功能的实现代码
2020/07/02 Python
Python实现画图软件功能方法详解
2020/07/28 Python
实例教程 纯CSS3打造非常炫的加载动画效果
2014/11/05 HTML / CSS
HTML5 创建canvas元素示例代码
2014/06/04 HTML / CSS
销售人员职业生涯规划范文
2014/03/01 职场文书
公司管理建议书范文
2014/03/12 职场文书
年终考核实施方案
2014/05/26 职场文书
旅游与环境专业求职信
2014/06/05 职场文书
法定代表人身份证明书
2014/09/10 职场文书
2015欢度元旦标语口号
2014/12/09 职场文书
2015年爱牙日活动总结
2015/02/05 职场文书
创先争优个人总结
2015/03/04 职场文书
追悼会答谢词范文
2015/09/29 职场文书
初中班级口号霸气押韵
2015/12/24 职场文书
python 爬取天气网卫星图片
2021/06/07 Python
使用Docker容器部署rocketmq单机的全过程
2022/04/03 Servers
SpringBoot 集成短信和邮件 以阿里云短信服务为例
2022/04/22 Java/Android
MutationObserver在页面水印实现起到的作用详解
2022/07/07 Javascript