0

我们都知道 chmod 777 并不是让我们的上传脚本正常工作的最佳方式。所以我在想使用它时最好的解决方案是什么。

我认为当用户上传文件“ picture.jpg ”时,我可以将其重命名为“ md5(username-picture-1.jpg) ”并在网页上显示为<img src="files.php?img=username-picture-1.jpg">.

然后在这个 files.php 文件上看起来像

<?php
    $file = md5($_GET['img']);

    header('Content-Type: image/jpeg');
    header('Content-Length: ' . filesize($file));
    echo file_get_contents($file);
?>

这样用户就不会知道他上传的文件的文件名,也就是说,他将无法执行它。我对吗?

并且显然我会进行一些其他检查来处理上传,例如 mime 类型和其他内容。我只想知道这是否会阻止用户执行他上传的文件。

4

1 回答 1

1

您可以简单地将 .htaccess 文件添加到包含上传文件的文件夹以防止执行,但我认为这是在将上传文件永久存储在文件系统之前检查上传文件的 mime-type/file-extension 的更好方法

于 2012-11-20T17:30:24.633 回答