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 Memcached + APC + 文件缓存封装实现代码
Mar 11 PHP
PHP 函数执行效率的小比较
Oct 17 PHP
php生成随机颜色方法汇总
Dec 03 PHP
php中动态变量用法实例
Jun 10 PHP
php去掉文件前几行的方法
Jul 29 PHP
php getcwd与dirname(__FILE__)区别详解
Sep 24 PHP
phalcon model在插入或更新时会自动验证非空字段的解决办法
Dec 29 PHP
PHP+mysql实现从数据库获取下拉树功能示例
Jan 06 PHP
thinkPHP简单调用函数与类库的方法
Mar 15 PHP
thinkPHP5.0框架模块设计详解
Mar 18 PHP
PHP addAttribute()函数讲解
Feb 03 PHP
PHP 命名空间和自动加载原理与用法实例分析
Apr 29 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
PHP输出数组中重名的元素的几种处理方法
2012/09/05 PHP
PHP中如何判断exec函数执行成功?
2016/08/04 PHP
Thinkphp5结合layer弹窗定制操作结果页面
2017/07/07 PHP
PHP基于堆栈实现的高级计算器功能示例
2017/09/15 PHP
PHP Include文件实例讲解
2019/02/15 PHP
PHP判断是否微信访问的方法示例
2019/03/27 PHP
PhpStorm连接服务器并实现自动上传功能
2020/12/09 PHP
innertext , insertadjacentelement , insertadjacenthtml , insertadjacenttext 等区别
2007/06/29 Javascript
js计算页面刷新的次数
2009/07/20 Javascript
网页右键ie不支持event.preventDefault和event.returnValue (需要加window)
2013/02/22 Javascript
javascript实现表格排序 编辑 拖拽 缩放
2015/01/02 Javascript
一个非常好用的文字滚动的案例,鼠标悬浮可暂停[两种方案任选]
2016/12/01 Javascript
详解nodejs微信公众号开发——4.自动回复各种消息
2017/04/11 NodeJs
利用npm 安装删除模块的方法
2018/05/15 Javascript
微信小程序表单弹窗实例
2018/07/19 Javascript
vue项目前端错误收集之sentry教程详解
2019/05/27 Javascript
javascript事件监听与事件委托实例详解
2019/08/16 Javascript
LayUi数据表格自定义赋值方式
2019/10/26 Javascript
jQuery Datatables 动态列+跨列合并实现代码
2020/01/30 jQuery
vant picker+popup 自定义三级联动案例
2020/11/04 Javascript
详解python中requirements.txt的一切
2017/03/03 Python
Python向日志输出中添加上下文信息
2017/05/24 Python
python构建深度神经网络(续)
2018/03/10 Python
Python中包的用法及安装
2020/02/11 Python
如何理解python面向对象编程
2020/06/01 Python
html5构建触屏网站之touch事件介绍
2013/01/07 HTML / CSS
html5画布旋转效果示例
2014/01/27 HTML / CSS
企业党建工作汇报材料
2014/08/19 职场文书
基层党员群众路线教育实践活动个人对照检查材料思想汇报
2014/10/05 职场文书
2015年幼儿园中班下学期工作总结
2015/05/22 职场文书
人生遥控器观后感
2015/06/11 职场文书
2015年幼儿教育工作总结
2015/07/24 职场文书
2016年七夕爱情寄语
2015/12/04 职场文书
总结python多进程multiprocessing的相关知识
2021/06/29 Python
详解解Django 多对多表关系的三种创建方式
2021/08/23 Python
JS实现简单九宫格抽奖
2022/06/28 Javascript