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 根据IP地址控制访问的代码
Apr 22 PHP
php图片上传存储源码并且可以预览
Aug 26 PHP
PHP文章采集URL补全函数(FormatUrl)
Aug 02 PHP
析构函数与php的垃圾回收机制详解
Oct 28 PHP
PHP json_decode函数详细解析
Feb 17 PHP
php提交表单发送邮件的方法
Mar 20 PHP
php生成验证码函数
Oct 20 PHP
WordPress中重置文章循环的rewind_posts()函数讲解
Jan 11 PHP
php使用glob函数遍历文件和目录详解
Sep 23 PHP
Laravel框架中Blade模板的用法示例
Aug 30 PHP
PHP基于GD2函数库实现验证码功能示例
Jan 27 PHP
PHP随机生成中文段落示例【测试网站内容时使用】
Apr 26 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
2021年最新CPU天梯图
2021/03/04 数码科技
PHP中将ip地址转成十进制数的两种实用方法
2013/08/15 PHP
php使用CURL不依赖COOKIEJAR获取COOKIE的方法
2015/06/17 PHP
PHP获取文件扩展名的4种方法
2015/11/24 PHP
PHP微信H5支付开发实例
2018/07/25 PHP
php设计模式之适配器模式原理、用法及注意事项详解
2019/09/24 PHP
JavaScript中的排序算法代码
2011/02/22 Javascript
左右悬浮可分组的网站QQ在线客服代码(可谓经典)
2012/12/21 Javascript
可自定义速度的js图片无缝滚动示例分享
2014/01/20 Javascript
Javascript 读取操作Sql中的Xml字段
2014/10/09 Javascript
浅析AngularJs HTTP响应拦截器
2015/12/28 Javascript
基于jQuery日历插件制作日历
2016/03/11 Javascript
如何在Linux上安装Node.js
2016/04/01 Javascript
JavaScript对象数组排序实例方法浅析
2016/06/15 Javascript
深入浅析JavaScript中的Function类型
2016/07/09 Javascript
JavaScript触发onScroll事件的函数节流详解
2016/12/14 Javascript
浅析BootStrap中Modal(模态框)使用心得
2016/12/24 Javascript
微信小程序-拍照或选择图片并上传文件
2017/01/06 Javascript
react以create-react-app为基础创建项目
2018/03/14 Javascript
node.js使用redis储存session的方法
2018/09/26 Javascript
jQuery实现网页拼图游戏
2020/04/22 jQuery
vue项目首屏打开速度慢的解决方法
2019/03/31 Javascript
python selenium UI自动化解决验证码的4种方法
2018/01/05 Python
对numpy中布尔型数组的处理方法详解
2018/04/17 Python
将TensorFlow的模型网络导出为单个文件的方法
2018/04/23 Python
Python批量发送post请求的实现代码
2018/05/05 Python
Python切片操作深入详解
2018/07/27 Python
哪些是python中web开发框架
2020/06/17 Python
Python使用tkinter实现摇骰子小游戏功能的代码
2020/07/02 Python
有关pycharm登录github时有的时候会报错connection reset的问题
2020/09/15 Python
Python内存泄漏和内存溢出的解决方案
2020/09/26 Python
Python中pass语句的作用是什么
2016/06/01 面试题
庆七一活动方案
2014/01/25 职场文书
教师师德师风整改措施
2014/10/24 职场文书
婚庆主持词大全
2015/06/30 职场文书
Python图片验证码降噪和8邻域降噪
2021/08/30 Python