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 Zip压缩 在线对文件进行压缩的函数
May 26 PHP
php目录操作函数之获取目录与文件的类型
Dec 29 PHP
深入PHP5中的魔术方法详解
Jun 17 PHP
分享微信扫码支付开发遇到问题及解决方案-附Ecshop微信支付插件
Aug 23 PHP
php验证码生成代码
Nov 11 PHP
基于ThinkPHP实现批量删除
Dec 18 PHP
php获取文件后缀的9种方法
Mar 22 PHP
非常经典的PHP文件上传类分享
May 15 PHP
老生常谈php 正则中的i,m,s,x,e分别表示什么
Mar 02 PHP
PHP PDOStatement::debugDumpParams讲解
Jan 30 PHP
PHP自动载入类文件函数__autoload的使用方法
Mar 25 PHP
Thinkphp5.0 框架Model模型简单用法分析
Oct 11 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中养成7个面向对象的好习惯
2010/01/28 PHP
微信公众平台消息接口校验与消息接口响应实例
2014/12/23 PHP
Ajax实现对静态页面的文章访问统计功能示例
2016/10/10 PHP
PHP 用session与gd库实现简单验证码生成与验证的类方法
2016/11/15 PHP
使用jQuery时Form表单元素ID和name命名大忌
2014/03/06 Javascript
javascript使用switch case实现动态改变超级链接文字及地址
2014/12/16 Javascript
JavaScript数组对象实现增加一个返回随机元素的方法
2015/07/27 Javascript
BootStrap智能表单实战系列(六)表单编辑页面的数据绑定
2016/06/13 Javascript
JS获得一个对象的所有属性和方法实例
2017/02/21 Javascript
webpack组织模块打包Library的原理及实现
2018/03/10 Javascript
JS非行间样式获取函数的实例代码
2018/06/05 Javascript
javascriptvoid(0)含义以及与"#"的区别讲解
2019/01/19 Javascript
生产制造追溯系统之在线打印功能
2019/06/03 Javascript
Vue实现滑动拼图验证码功能
2019/09/15 Javascript
vue-resourc发起异步请求的方法
2020/02/11 Javascript
微信小程序scroll-view隐藏滚动条的方法详解
2020/03/25 Javascript
简单介绍Python的轻便web框架Bottle
2015/04/08 Python
python提取页面内url列表的方法
2015/05/25 Python
深入理解Python分布式爬虫原理
2017/11/23 Python
pandas中的DataFrame按指定顺序输出所有列的方法
2018/04/10 Python
对python中的 os.mkdir和os.mkdirs详解
2018/10/16 Python
python write无法写入文件的解决方法
2019/01/23 Python
Python3.7+tkinter实现查询界面功能
2019/12/24 Python
HTML5 video视频字幕的使用和制作方法
2018/05/03 HTML / CSS
html5 canvas实现圆形时钟代码分享
2013/12/25 HTML / CSS
MyHeritage美国:家族史研究和DNA测试的领先服务
2019/05/27 全球购物
学习党课思想汇报
2013/12/29 职场文书
食品行业求职人的自我评价
2014/01/19 职场文书
十八届三中全会宣传方案
2014/02/21 职场文书
求职信名称怎么写
2014/05/26 职场文书
卫生院健康教育实施方案
2014/06/07 职场文书
大学生标准自荐书
2014/06/15 职场文书
一份恶作剧的检讨书
2014/09/13 职场文书
大学生见习总结报告
2015/06/24 职场文书
货款欠条范本
2015/07/03 职场文书
Go Grpc Gateway兼容HTTP协议文档自动生成网关
2022/06/16 Golang