首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >文件上传安全漏洞

文件上传安全漏洞
EN

Stack Overflow用户
提问于 2012-01-07 13:00:29
回答 1查看 1.6K关注 0票数 0

我的代码中有没有文件上传的安全漏洞?我在我的服务器端使用apache。在php.ini文件中启用了文件上传。

代码语言:javascript
复制
<?php
if ($_FILES["file"]["size"] < 100000)//maximum upload size is 100 kb
{
    if ($_FILES["file"]["error"] > 0)
    {
      echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
    }
    else
    {
    if (file_exists("upload/" . $_FILES["file"]["name"]))
    {
      echo $_FILES["file"]["name"] . " already exists. ";
    }
    else
    {
      move_uploaded_file($_FILES["file"]["tmp_name"],"upload/" . $_FILES["file"]["name"]);
$var="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
$samp=str_shuffle($var);
$pass=substr($samp,0,20);// creating a random text for file name.
$ext = pathinfo($_FILES["file"]["name"], PATHINFO_EXTENSION);
$ext=".{$ext}";
$newfilename="upload/".$pass.$ext;
rename("upload/".$_FILES["file"]["name"],$newfilename );
    echo "Stored in: " . $newfilename;
echo "<br>extension : ".$ext;
  }
}
}
else
  echo "File size is too large..";
?>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-01-07 13:31:08

有可能,是的。

如果有人上传了PHP文件,会发生什么?他们是否能够确定文件名、文件URL并运行PHP文件?

如果是,程序可以使用scandir()函数来获取所有文件名列表。

为了防止这种情况,您可以将文件存储在path之外,拒绝接受.php文件,或者使用.htaccess关闭该目录中的DocumentRoot引擎。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8767507

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档