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 相关文章推荐
smarty section简介与用法分析
Oct 03 PHP
php ci框架验证码实例分析
Jun 26 PHP
php定界符
Jun 19 PHP
Yii中使用PHPExcel导出Excel的方法
Dec 26 PHP
实例详解PHP中html word 互转的方法
Jan 28 PHP
浅析php如何实现App常用的秒发功能
Aug 03 PHP
phpstudy2018升级MySQL5.5为5.7教程(图文)
Oct 24 PHP
Laravel框架基于中间件实现禁止未登录用户访问页面功能示例
Jan 17 PHP
PHP实现一个轻量级容器的方法
Jan 28 PHP
PHP使用 Pear 进行安装和卸载包的方法详解
Jul 08 PHP
PHP设计模式(一)工厂模式Factory实例详解【创建型】
May 02 PHP
php中yii框架实例用法
Dec 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
PHP中exec函数和shell_exec函数的区别
2014/08/20 PHP
php生成图片验证码的实例讲解
2015/08/03 PHP
php提高网站效率的技巧
2015/09/29 PHP
讲解WordPress开发中一些常用的debug技巧
2015/12/18 PHP
php生成随机数/生成随机字符串的方法小结【5种方法】
2020/05/27 PHP
javascript之ESC(第二类混淆)
2007/05/06 Javascript
Javascript 函数中的参数使用分析
2010/03/27 Javascript
HTML复选框和单选框 checkbox和radio事件介绍
2012/12/12 Javascript
举例详解Python中smtplib模块处理电子邮件的使用
2015/06/24 Javascript
js代码实现无缝滚动(文字和图片)
2015/08/20 Javascript
jQuery实现漂亮实用的商品图片tips提示框效果(无图片箭头+阴影)
2016/04/16 Javascript
AngularJS入门之动画
2016/07/27 Javascript
浅谈angularjs module返回对象的坑(推荐)
2016/10/21 Javascript
springMVC + easyui + $.ajaxFileUpload实现文件上传注意事项
2017/04/23 Javascript
实例详解JSON取值(key是中文或者数字)方式
2017/08/24 Javascript
VUE2.0中Jsonp的使用方法
2018/05/22 Javascript
Koa代理Http请求的示例代码
2018/10/10 Javascript
JavaScript寄生组合式继承原理与用法分析
2019/01/11 Javascript
微信小程序实现的一键拨号功能示例
2019/04/24 Javascript
JS用最简单的方法实现四舍五入
2019/08/27 Javascript
利用Django框架中select_related和prefetch_related函数对数据库查询优化
2015/04/01 Python
快速查询Python文档方法分享
2017/12/27 Python
python基础学习之如何对元组各个元素进行命名详解
2018/07/12 Python
selenium在执行phantomjs的API并获取执行结果的方法
2018/12/17 Python
Python 中Django安装和使用教程详解
2019/07/03 Python
python GUI库图形界面开发之PyQt5信号与槽机制、自定义信号基础介绍
2020/02/25 Python
python进行OpenCV实战之画图(直线、矩形、圆形)
2020/08/27 Python
基于Python中Remove函数的用法讨论
2020/12/11 Python
美国折衷生活方式品牌:Robert Graham
2018/07/13 全球购物
2014年度党员自我评议
2014/09/13 职场文书
社区党风廉政建设调研报告
2015/01/01 职场文书
幼儿园重阳节活动总结
2015/05/05 职场文书
奠基仪式致辞
2015/07/30 职场文书
创业计划书之外语培训班
2019/11/02 职场文书
详细了解MVC+proxy
2021/07/09 Java/Android
Golang 入门 之url 包
2022/05/04 Golang