3

我有一个将文件上传到我的服务器的脚本这是我的代码

当用户将文件上传到服务器时

  1. 我的脚本重命名文件并将详细信息保存在数据库中。

  2. 我将文件放在网络根目录之外。

那么我的方法安全吗?

4

2 回答 2

1

是的,您的方法是安全的。因为所有文件都将在 Web 根目录之外上传。没有人可以通过 URL 直接访问它。

于 2013-03-16T05:08:34.840 回答
1

您应该对您的文件进行进一步的输入验证,例如:

  • 检查文件大小

  • 使用“文件类型识别器”检查文件类型

  • 检查内容标题

您还可以在此处查看文件上传的最佳实践: https ://www.owasp.org/index.php/Unrestricted_File_Upload

永远不要在您的服务器上运行该文件。

要检查内容类型(顺便说一句,我自己从来没有这样做过),您可以尝试以下操作:

$file = "path2file";
$finfo = new finfo(FILEINFO_MIME);
$type = $finfo->file($file);
if(in_array($type,array("application/zip", "application/x-zip", .. whatever content types are ok...)))
  //you passed
于 2013-03-16T05:08:49.533 回答