这个基本文件上传检查是否足够安全?

时间:2015-12-24 03:21:14

标签: php file-upload

还会检查mimetype,但由于这可能是欺骗性的,这个额外的简单代码段是否足以检查上传文件的有效性?

$safe_to_move = false;

$ext = array("pdf", "doc", "docx", "xls", "xlsx");
if (in_array(preg_replace('/.*\./', '', strtolower($_FILES['file']['name'])), $ext)) {
    $safe_to_move = true;
}

if (!is_uploaded_file($_FILES['file']['tmp_name'])) {
    $safe_to_move = false;
}

1 个答案:

答案 0 :(得分:1)

您所做的是一种可靠的方法,但它的安全性更多取决于您的服务器环境的设置方式。

这篇文章提供了一些非常好的洞察力,可以深入了解您所要求的内容以及我所说的或多或少会引用它的内容。 http://resources.infosecinstitute.com/file-upload-vulnerabilities/

你确实创造了一个正确的东西,但是......

  

最重要的是将上传的文件保留在无法访问的位置   互联网。这可以通过将上传的文件存储在Web根目录之外,或者配置Web服务器以拒绝访问上载目录来完成。

您可以采取其他措施来提高安全性,我完全建议您查看链接文章的解决方案部分,但要确保这些文件的存储方式不容易访问"非现场"使得外部运行它们变得更加困难(显然)。

铊;博士 您所做的是第一步,如果您的服务器环境设置正确,那就足够了。