php判断文件上传类型及过滤不安全数据的方法


Posted in PHP onDecember 17, 2014

本文实例讲述了php判断文件上传类型及过滤不安全数据的方法。分享给大家供大家参考。具体如下:

禁止上传除图片文件以外的文件,提示,不要获取文件扩展名来判断类型,这样是最不安全的,我们用$_FIlES['form']['type'].

这个可以读取文件内容来识别文件类型,但它能识别的有限,不过如果你用图片就足够了解.函数,过滤不安全字符,实例函数代码如下:

function s_addslashes($string, $force = 0) { 

 if(!get_magic_quotes_gpc()) { 

  if(is_array($string)) { 

   foreach($string as $key => $val) { 

    $string[$key] = s_addslashes($val, $force); 

   } 

  } else { 

   $string=str_replace("&#x","& # x",$string); // 

 

//过滤一些不安全字符 

   $string = addslashes($string); 

  } 

 } 

 return $string; 

} 

 

//用法实例: 

$_COOKIE = c_addslashes($_COOKIE); 

$_POST   = c_addslashes($_POST); 

$_GET   = c_addslashes($_GET); 

 

//在公共文件中加入 

if($_FILES){  

 foreach( $_FILES as $key => $_value ) 

 { 

  $_FILES[$key]['type'] =$_value['type'];   

 } 

 if(substr($_FILES[$key]['type'],0,6) !='image/') 

 { 

  exit; 

 } 

}

希望本文所述对大家的PHP程序设计有所帮助。

PHP 相关文章推荐
PHP采集利器 Snoopy 试用心得
Jul 03 PHP
php递归创建和删除文件夹的代码小结
Apr 13 PHP
php中的常用魔术方法总结
Aug 02 PHP
PHP遍历XML文档所有节点的方法
Mar 12 PHP
PHP IDE PHPStorm配置支持友好Laravel代码提示方法
May 12 PHP
yii2中结合gridview如何使用modal弹窗实例代码详解
Jun 12 PHP
修改Laravel5.3中的路由文件与路径
Aug 10 PHP
php array_walk 对数组中的每个元素应用用户自定义函数详解
Nov 18 PHP
PHP将身份证正反面两张照片合成一张图片的代码
Apr 08 PHP
PHP基于DOMDocument解析和生成xml的方法分析
Jul 17 PHP
Laravel构建即时应用的一种实现方法详解
Aug 31 PHP
Yii 使用intervention/image拓展实现图像处理功能
Jun 22 PHP
php可生成缩略图的文件上传类实例
Dec 17 #PHP
php提示Failed to write session data错误的解决方法
Dec 17 #PHP
php运行提示:Fatal error Allowed memory size内存不足的解决方法
Dec 17 #PHP
PHP中使用file_get_contents抓取网页中文乱码问题解决方法
Dec 17 #PHP
apache中为php 设置虚拟目录
Dec 17 #PHP
PHP提示Warning:phpinfo() has been disabled函数禁用的解决方法
Dec 17 #PHP
Linux中为php配置伪静态
Dec 17 #PHP
You might like
全国FM电台频率大全 - 6 辽宁省
2020/03/11 无线电
在phpstudy集成环境下的nginx服务器下配置url重写
2019/12/02 PHP
$()JS小技巧
2007/07/21 Javascript
IE6图片加载的一个BUG解决方法
2010/07/13 Javascript
Javascript Request获取请求参数如何实现
2012/11/28 Javascript
关于textarea提交的内容无法换行的解决办法
2013/04/09 Javascript
JavaScript获取当前页面上的指定对象示例代码
2014/02/28 Javascript
JS获取URL中参数值(QueryString)的4种方法分享
2014/04/12 Javascript
Extjs Label的 fieldLabel和html属性值对齐的方法
2014/06/15 Javascript
简单介绍JavaScript的变量和数据类型
2015/06/03 Javascript
Nodejs全局安装和本地安装的不同之处
2016/07/04 NodeJs
从0开始学Vue
2016/10/27 Javascript
AngularJS发送异步Get/Post请求方法
2018/08/13 Javascript
JavaScript实现多态和继承的封装操作示例
2018/08/20 Javascript
微信小程序实现左滑修改、删除功能
2020/10/19 Javascript
vue+axios全局添加请求头和参数操作
2020/07/24 Javascript
[30:51]DOTA2上海特级锦标赛主赛事日 - 3 胜者组第二轮#1Liquid VS MVP.Phx第一局
2016/03/04 DOTA
[53:52]OG vs EG 2018国际邀请赛淘汰赛BO3 第二场 8.23
2018/08/24 DOTA
使用Python的package机制如何简化utils包设计详解
2017/12/11 Python
在django中图片上传的格式校验及大小方法
2019/07/28 Python
python 数据库查询返回list或tuple实例
2020/05/15 Python
浅谈python量化 双均线策略(金叉死叉)
2020/06/03 Python
python安装第三方库如xlrd的方法
2020/10/31 Python
Rakuten Kobo台湾:电子书、eReaders和Reading应用程式
2017/11/24 全球购物
Love, Bonito国际官网:新加坡女装品牌
2021/03/13 全球购物
为什么如下的代码int a=100,b=100;long int c=a * b;不能工作
2013/11/29 面试题
初级软件工程师面试题 Junior Software Engineer Interview
2015/02/15 面试题
学期自我鉴定范文
2013/10/01 职场文书
新闻专业推荐信范文
2013/11/20 职场文书
养殖项目策划书范文
2014/01/13 职场文书
建筑设计专业求职自我评价
2014/03/02 职场文书
工程管理英文求职信
2014/03/18 职场文书
导游个人求职信范文
2014/03/23 职场文书
企业战略合作意向书
2015/05/08 职场文书
JS Canvas接口和动画效果大全
2021/04/29 Javascript
vscode内网访问服务器的方法
2022/06/28 Servers