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正则
Jul 07 PHP
改变Apache端口等配置修改方法
Jun 05 PHP
解析PHP工厂模式的好处
Jun 18 PHP
php调用Google translate_tts api实现代码
Aug 07 PHP
PHP中使用SimpleXML检查XML文件结构实例
Jan 07 PHP
PHP 错误处理机制
Jul 06 PHP
php递归实现无限分类的方法
Jul 28 PHP
PHP 将数组打乱 shuffle函数的用法及简单实例
Jun 17 PHP
PHP 中 DOMDocument保存xml时中文出现乱码问题的解决方案
Sep 19 PHP
php版微信开发之接收消息,自动判断及回复相应消息的方法
Sep 23 PHP
php使用FFmpeg接口获取视频的播放时长、码率、缩略图以及创建时间
Nov 07 PHP
phpstudy默认不支持64位php的解决方法
Feb 20 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
dede3.1分页文字采集过滤规则详说(图文教程)续二
2007/04/03 PHP
php检测数组长度函数sizeof与count用法
2014/11/17 PHP
php实现图片添加描边字和马赛克的方法
2014/12/10 PHP
php读取csv数据保存到数组的方法
2015/01/03 PHP
laravel 验证错误信息到 blade模板的方法
2019/09/29 PHP
javascript this用法小结
2008/12/19 Javascript
用 Javascript 验证表单(form)中多选框(checkbox)值
2009/09/08 Javascript
jQuery 处理网页内容的实现代码
2010/02/15 Javascript
判断对象是否Window的实现代码
2012/01/10 Javascript
用js判断页面刷新或关闭的方法(onbeforeunload与onunload事件)
2012/06/22 Javascript
转换字符串为json对象的方法详解
2013/11/29 Javascript
js实现弹窗插件功能实例代码分享
2013/12/12 Javascript
javaScript 页面自动加载事件详解
2014/02/10 Javascript
基于MVC4+EasyUI的Web开发框架形成之旅之界面控件的使用
2015/12/16 Javascript
jQuery回到顶部的代码
2016/07/09 Javascript
ionic隐藏tabs的方法
2016/08/29 Javascript
BootstrapValidator不触发校验的实现代码
2016/09/28 Javascript
javascript 动态脚本添加的简单方法
2016/10/11 Javascript
利用JS判断字符串是否含有数字与特殊字符的方法小结
2016/11/25 Javascript
bootstrap实现二级下拉菜单效果
2017/11/23 Javascript
javascript单张多张图无缝滚动实例代码
2020/05/10 Javascript
在Uni中使用Vue的EventBus总线机制操作
2020/07/31 Javascript
[01:00:59]VP VS VG Supermajor小组赛胜者组第二轮 BO3第二场 6.2
2018/06/03 DOTA
pandas 把数据写入txt文件每行固定写入一定数量的值方法
2018/12/28 Python
Python之NumPy(axis=0 与axis=1)区分详解
2019/05/27 Python
PyQT5 QTableView显示绑定数据的实例详解
2019/06/25 Python
pycharm新建Vue项目的方法步骤(图文)
2020/03/04 Python
CSS3实现图片抽屉式效果的示例代码
2019/11/06 HTML / CSS
英国老牌潮鞋店:Offspring
2019/08/19 全球购物
数控专业个人求职信范例
2013/11/29 职场文书
运动会跳远广播稿
2014/02/04 职场文书
机电一体化应届生求职信
2014/08/09 职场文书
作风转变年心得体会
2014/10/22 职场文书
该怎么书写道歉信?
2019/07/03 职场文书
MySQL Router实现MySQL的读写分离的方法
2021/05/27 MySQL
python+opencv实现目标跟踪过程
2022/06/21 Python