我们都知道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类型和其他东西。我只是想知道这是否是一种阻止用户执行他上传的文件的方法。
答案 0 :(得分:1)
您可以简单地将.htaccess文件添加到包含上传文件的文件夹以防止执行,但我认为这是一种更好的方法来检查上传文件的mime-type / file-extension,然后永久存储它们文件系统