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 相关文章推荐
ecshop 批量上传(加入自定义属性)
Mar 20 PHP
PHP 使用header函数设置HTTP头的示例解析 表头
Jun 17 PHP
浅析is_writable的php实现
Jun 18 PHP
PHP中替换键名的简易方法示例详解
Jan 07 PHP
Codeigniter实现智能裁剪图片的方法
Jun 12 PHP
PHP的反射类ReflectionClass、ReflectionMethod使用实例
Aug 05 PHP
php+mysql实现数据库随机重排实例
Oct 17 PHP
php实现Mongodb自定义方式生成自增ID的方法
Mar 23 PHP
php实现的RSS生成类实例
Apr 23 PHP
PHP中通过getopt解析GNU C风格命令行选项
Nov 18 PHP
Nginx+php配置文件及原理解析
Dec 09 PHP
Laravel中获取IP的真实地理位置
Apr 01 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
PHP4实际应用经验篇(7)
2006/10/09 PHP
PHP XML error parsing SOAP payload on line 1
2010/06/17 PHP
php通过array_push()函数添加多个变量到数组末尾的方法
2015/03/18 PHP
PHP调用.NET的WebService 简单实例
2015/03/27 PHP
PHP实现即时输出、实时输出内容方法
2015/05/27 PHP
深入理解PHP之源码目录结构与功能说明
2016/06/01 PHP
利用PHPStorm如何开发Laravel应用详解
2017/08/30 PHP
禁止JQuery中的load方法装载IE缓存中文件的方法
2009/09/11 Javascript
Dom 是什么的详细说明
2010/10/25 Javascript
基于OO的动画附加插件,可以实现弹跳、渐隐等动画效果 分享
2013/06/24 Javascript
javascript实现图片延迟加载方法汇总(三种方法)
2015/08/27 Javascript
简单掌握JavaScript中const声明常量与变量的用法
2016/05/21 Javascript
JS实现的走迷宫小游戏完整实例
2017/07/19 Javascript
JS基于封装函数实现的表格分页完整示例
2018/06/26 Javascript
weui上传多图片,压缩,base64编码的示例代码
2020/06/22 Javascript
JavaScript语法约定和程序调试原理解析
2020/11/03 Javascript
element-plus一个vue3.xUI框架(element-ui的3.x 版初体验)
2020/12/02 Vue.js
[55:03]LGD vs EG 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
python实现多线程网页下载器
2018/04/15 Python
python中break、continue 、exit() 、pass终止循环的区别详解
2019/07/08 Python
python接口调用已训练好的caffe模型测试分类方法
2019/08/26 Python
pytorch实现seq2seq时对loss进行mask的方式
2020/02/18 Python
jupyter notebook oepncv 显示一张图像的实现
2020/04/24 Python
Python 如何展开嵌套的序列
2020/08/01 Python
QT5 Designer 打不开的问题及解决方法
2020/08/20 Python
Python使用grequests并发发送请求的示例
2020/11/05 Python
英国领先的办公用品供应商:Viking
2016/08/01 全球购物
玩具反斗城美国官网:Toys"R"Us
2016/09/17 全球购物
12月红领巾广播稿
2014/02/13 职场文书
大学运动会入场词
2014/02/22 职场文书
上班离岗检讨书
2014/09/10 职场文书
2014年小学少先队工作总结
2014/12/18 职场文书
先进工作者推荐材料
2014/12/23 职场文书
承诺书模板大全
2015/05/04 职场文书
MySQL kill不掉线程的原因
2021/05/07 MySQL
redis 解决库存并发问题实现数量控制
2022/04/08 Redis