我们都知道 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 类型和其他内容。我只想知道这是否会阻止用户执行他上传的文件。