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 相关文章推荐
Uchome1.2 1.5 代码学习 common.php
Apr 24 PHP
php中随机显示图片的函数代码
Jun 23 PHP
php中XMLHttpRequest(Ajax)不能设置自定义的Referer的解决方法
Nov 26 PHP
CodeIgniter上传图片成功的全部过程分享
Aug 12 PHP
PHP的foreach中使用引用时需要注意的一个问题和解决方法
May 29 PHP
php批量删除cookie的简单实现方法
Jan 26 PHP
Php-Redis安装测试笔记
Mar 05 PHP
PHP实现基于回溯法求解迷宫问题的方法详解
Aug 17 PHP
在php的yii2框架中整合hbase库的方法
Sep 20 PHP
PHP标准库(PHP SPL)详解
Mar 16 PHP
PHP FileSystem 文件系统常用api整理总结
Jul 12 PHP
yii框架使用分页的方法分析
Jul 25 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
一次编写,随处运行
2006/10/09 PHP
PHP 获取远程文件大小的3种解决方法
2013/07/11 PHP
PHP写日志的实现方法
2014/11/05 PHP
php实现的美国50个州选择列表实例
2015/04/20 PHP
php获取文件后缀的9种方法
2016/03/22 PHP
php usort 使用用户自定义的比较函数对二维数组中的值进行排序
2017/05/02 PHP
javascript 获取图片颜色
2009/04/05 Javascript
javascript基础第一章 JavaScript与用户端
2010/07/22 Javascript
自己封装的javascript事件队列函数版
2014/06/12 Javascript
js动态创建及移除div的方法
2015/06/03 Javascript
JavaScript中Null与Undefined的区别解析
2015/06/30 Javascript
js获取Html元素的实际宽度高度的方法
2016/05/19 Javascript
深入理解Node.js 事件循环和回调函数
2016/11/02 Javascript
Angularjs之filter过滤器(推荐)
2016/11/27 Javascript
Bootstrap fileinput文件上传预览插件使用详解
2017/05/16 Javascript
小程序视频列表中视频的播放与停止的示例代码
2018/07/20 Javascript
在vue项目中使用md5加密的方法
2018/09/14 Javascript
JavaScript WeakMap使用详解
2021/02/05 Javascript
[01:44]《为梦想出发》—联想杯DOTA2完美世界全国高校联赛
2015/09/30 DOTA
[02:12]Dota 2 推出全新英雄—— 电炎绝手
2019/08/23 DOTA
跟老齐学Python之折腾一下目录
2014/10/24 Python
Python 利用pydub库操作音频文件的方法
2019/01/09 Python
python 处理telnet返回的More,以及get想要的那个参数方法
2019/02/14 Python
利用python、tensorflow、opencv、pyqt5实现人脸实时签到系统
2019/09/25 Python
Python3.8对可迭代解包的改进及用法详解
2019/10/15 Python
python 日志 logging模块详细解析
2020/03/31 Python
PyQT5 实现快捷键复制表格数据的方法示例
2020/06/19 Python
python3 kubernetes api的使用示例
2021/01/12 Python
python反编译教程之2048小游戏实例
2021/03/03 Python
Ever New美国:澳大利亚领先的女装时尚品牌
2019/11/28 全球购物
新郎婚宴答谢词
2014/01/19 职场文书
自主招生自荐信指南
2014/02/04 职场文书
高校教师岗位职责
2014/03/18 职场文书
村当支部个人对照检查材料思想汇报
2014/10/06 职场文书
只用50行Python代码爬取网络美女高清图片
2021/06/02 Python
在虚拟机中安装windows server 2008的图文教程
2022/06/28 Servers