上传文件夹安全解决方

时间:2012-11-20 17:25:29

标签: php security upload chmod

我们都知道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类型和其他东西。我只是想知道这是否是一种阻止用户执行他上传的文件的方法。

1 个答案:

答案 0 :(得分:1)

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