is_uploaded_file 这可以用来确保恶意的用户无法欺骗脚本去访问本不能访问的文件

转载 2016年08月30日 22:50:37



is_uploaded_file

(PHP 3>= 3.0.17, PHP 4 >= 4.0.3)

is_uploaded_file -- 判断文件是否是通过 HTTP POST 上传的

说明

bool is_uploaded_file ( string filename)

如果 filename 所给出的文件是通过 HTTP POST 上传的则返回 TRUE。这可以用来确保恶意的用户无法欺骗脚本去访问本不能访问的文件,例如/etc/passwd

这种检查显得格外重要,如果上传的文件有可能会造成对用户或本系统的其他用户显示其内容的话。

is_uploaded_file() 仅可用于 PHP 3 的 3.0.16 版之后,以及 PHP 4 的 4.0.2 版之后。如果你执意要用老版本,可以用下面的函数来保护自己:

注: 以下例子不能用于 PHP 4 的 4.0.2 版之后。它依赖的 PHP 内部函数在该版本之后改变了。

<?php
/* Userland test for uploaded file. */
function is_uploaded_file($filename) {
    if (!
$tmp_file get_cfg_var('upload_tmp_dir')) {
        
$tmp_file dirname(tempnam(''''));
    }
    
$tmp_file .= '/' basename($filename);
    
/* User might have trailing slash in php.ini... */
    
return (ereg_replace('/+''/'$tmp_file) == $filename);
}

/* This is how to use it, since you also don't have
* move_uploaded_file() in these older versions: */
if (is_uploaded_file($HTTP_POST_FILES['userfile'])) {
    
copy($HTTP_POST_FILES['userfile'], "/place/to/put/uploaded/file");
} else {
    echo 
"Possible file upload attack: filename '$HTTP_POST_FILES[userfile]'.";
}
?>

参见 move_uploaded_file(),以及文件上传处理一章中的简单使用例子。


is_uploaded_file

(PHP 3>= 3.0.17, PHP 4 >= 4.0.3)

is_uploaded_file -- 判断文件是否是通过 HTTP POST 上传的

说明

bool is_uploaded_file ( string filename)

如果 filename 所给出的文件是通过 HTTP POST 上传的则返回 TRUE。这可以用来确保恶意的用户无法欺骗脚本去访问本不能访问的文件,例如/etc/passwd

这种检查显得格外重要,如果上传的文件有可能会造成对用户或本系统的其他用户显示其内容的话。

is_uploaded_file() 仅可用于 PHP 3 的 3.0.16 版之后,以及 PHP 4 的 4.0.2 版之后。如果你执意要用老版本,可以用下面的函数来保护自己:

注: 以下例子不能用于 PHP 4 的 4.0.2 版之后。它依赖的 PHP 内部函数在该版本之后改变了。

<?php
/* Userland test for uploaded file. */
function is_uploaded_file($filename) {
    if (!
$tmp_file get_cfg_var('upload_tmp_dir')) {
        
$tmp_file dirname(tempnam(''''));
    }
    
$tmp_file .= '/' basename($filename);
    
/* User might have trailing slash in php.ini... */
    
return (ereg_replace('/+''/'$tmp_file) == $filename);
}

/* This is how to use it, since you also don't have
* move_uploaded_file() in these older versions: */
if (is_uploaded_file($HTTP_POST_FILES['userfile'])) {
    
copy($HTTP_POST_FILES['userfile'], "/place/to/put/uploaded/file");
} else {
    echo 
"Possible file upload attack: filename '$HTTP_POST_FILES[userfile]'.";
}
?>

参见 move_uploaded_file(),以及文件上传处理一章中的简单使用例子。

都是权限惹的祸:安卓恶意APP如何将其他APP中的私有数据搞到手

前言 下面要介绍的恶意软件可以读取Android手机中其他app的文件元数据,例如文件的名称、大小、以及最后修改日期等等。如果文件名中含有敏感信息的标识,那么这款恶意app会将这份文件识别为敏感文件...
  • qq_27446553
  • qq_27446553
  • 2016年09月18日 20:18
  • 769

LoadRunner中IP欺骗执行步骤

LoadRunner模拟多用户场景时,有时候
  • cgg66
  • cgg66
  • 2014年05月16日 16:21
  • 873

FTP 限制用户只访问HOME目录

在/etc/vsftpd/下有个文件vsftpd.conf 修改下面这三行 chroot_local_user=YES chroot_list_enable=YES c...
  • jj3341332
  • jj3341332
  • 2016年09月10日 22:48
  • 2546

无法在服务器上访问指定的路径或文件,请确保您具有必需的安全权限且该路径或文件存在。

今天将数据库转移到另外一条服务器上。被迫分离了数据库,转移完后,屁颠屁颠的准备附加回去。。。 结果,瞬间尿了~~~~ 于是乎,各种加权限,甚至给了everyone最高权限。%>_ ...
  • sbt0198
  • sbt0198
  • 2014年06月11日 15:11
  • 2888

Microsoft Office Excel 不能访问文件。。。 可能的原因有。。。

System.Runtime.InteropServices.COMException (0x800A03EC): Microsoft Office Excel 不能访问文件“D:\Benz\Daim...
  • zhu2695
  • zhu2695
  • 2015年07月21日 19:51
  • 1764

linux下 tomcat本机能访问,外部无法访问http://localhost:8080/解决办法

一般来讲是防火墙的原因,打开端口8080就行了,你可以用以下命令:  #service iptables stop   当然 这种情况只是暂时解决办法,服务器一启动就失效。可以用下面一种方法:  ...
  • vickyfei
  • vickyfei
  • 2012年08月21日 09:43
  • 2948

Tampermonkey总是弹出提示一个用户脚本试图访问跨源资源的解决

Tampermonkey总是弹出“一个用户脚本试图访问跨源资源”的页面提示的解决方法...
  • DearMorning
  • DearMorning
  • 2017年02月22日 22:54
  • 3366

Microsoft Excel不能访问文件,不能保存,不能单击打开文件的解决方法

Microsoft Excel 不能访问文件"C:\Users\james\Documents\test.xls"。 可能的原因有以下几个:   • 文件名称或路径不存在。   • 文件正被其他程...
  • Jasmine_shine
  • Jasmine_shine
  • 2015年03月03日 17:43
  • 3861

LINUX下用apache,本机可以访问,但局域网中的电脑无法访问

最近在LINUX下面用apache架设WEB服务器,本机可以访问,但局域网里面的机器就不能访问. baidu里面查,有人说是LINUX的防火墙的问题,我用了service iptables stop,...
  • ycl111
  • ycl111
  • 2006年08月16日 15:32
  • 1600

Exchange 2010 OWA部分用户不能访问

今天在实施一个Exchange 2010的项目时候,发现行移后部分用户OWA怎么访问都不可以,都显示用户名与密码错误,看到这个问题之后我想到可能是用户权限与策略原因造成的,执行几个步骤:1. 找到有问...
  • xuhuojun
  • xuhuojun
  • 2013年12月17日 00:07
  • 5897
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:is_uploaded_file 这可以用来确保恶意的用户无法欺骗脚本去访问本不能访问的文件
举报原因:
原因补充:

(最多只允许输入30个字)