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实现分页的一个示例
Oct 09 PHP
php中批量修改文件后缀名的函数代码
Oct 23 PHP
PHP异步调用socket实现代码
Jan 12 PHP
PHP fopen 读取带中文URL地址的一点见解
Sep 25 PHP
解析用PHP读写音频文件信息的详解(支持WMA和MP3)
May 10 PHP
php上传文件,创建递归目录的实例代码
Oct 18 PHP
xss防御之php利用httponly防xss攻击
Mar 21 PHP
Codeigniter发送邮件的方法
Mar 19 PHP
PHP类的封装与继承详解
Sep 29 PHP
PHP实现通过URL提取根域名
Mar 31 PHP
PHP中header用法小结
May 23 PHP
PHP实现的DES加密解密类定义与用法示例
Nov 02 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入门学习知识点三 PHP上传
2011/07/14 PHP
PHP版网站缓存加快打开速度的方法分享
2012/06/03 PHP
CI框架表单验证实例详解
2016/11/21 PHP
JavaScript 学习笔记(十一)
2010/01/19 Javascript
js各种验证文本框输入格式(正则表达式)
2010/10/22 Javascript
jquery实现焦点图片随机切换效果的方法
2015/03/12 Javascript
jQuery定义背景动态切换效果的方法
2015/03/23 Javascript
JavaScript中setMonth()方法的使用详解
2015/06/11 Javascript
莱鸟介绍javascript onclick事件
2016/01/06 Javascript
分享jQuery插件的学习笔记
2016/01/14 Javascript
微信小程序之页面拦截器的示例代码
2017/09/07 Javascript
解决vue打包之后静态资源图片失效的问题
2018/02/21 Javascript
vuex的module模块用法示例
2018/11/12 Javascript
详解Vue.js在页面加载时执行某个方法
2018/11/20 Javascript
深入浅出了解Node.js Streams
2019/05/27 Javascript
javascript面向对象程序设计实践常用知识点总结
2019/07/29 Javascript
python 调用HBase的简单实例
2016/12/18 Python
Django框架多表查询实例分析
2018/07/04 Python
使用sklearn进行对数据标准化、归一化以及将数据还原的方法
2018/07/11 Python
pandas的唯一值、值计数以及成员资格的示例
2018/07/25 Python
Python中的集合介绍
2019/01/28 Python
Python将string转换到float的实例方法
2019/07/29 Python
基于Python实现拆分和合并GIF动态图
2019/10/22 Python
Tensorflow tf.nn.atrous_conv2d如何实现空洞卷积的
2020/04/20 Python
如何配置关联Python 解释器 Anaconda的教程(图解)
2020/04/30 Python
PyCharm2020最新激活码+激活码补丁(亲测最新版PyCharm2020.2激活成功)
2020/11/25 Python
HTML5页面无缝闪开的问题及解决方案
2020/06/11 HTML / CSS
百联网上商城:i百联
2017/01/28 全球购物
Europcar澳大利亚官网:全球汽车租赁领域的领导者
2019/03/24 全球购物
《小小竹排画中游》教学反思
2014/02/26 职场文书
优秀班主任主要事迹材料
2014/12/16 职场文书
测量员岗位职责
2015/02/14 职场文书
React-vscode使用jsx语法的问题及解决方法
2021/06/21 Javascript
MySQL中的引号和反引号的区别与用法详解
2021/10/24 MySQL
CentOS8.4安装Redis6.2.6的详细过程
2021/11/20 Redis
css如何把元素固定在容器底部的四种方式
2022/06/16 HTML / CSS