我们都知道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类型和其他东西。我只想知道这是否会阻止用户执行他上传的文件。
发布于 2012-11-20 17:30:24
您可以简单地将一个.htaccess文件添加到包含上传文件的文件夹中,以防止执行,但我认为,在将上载文件永久存储在文件系统之前,检查上载文件的mime类型/文件扩展名是更好的方法。
https://stackoverflow.com/questions/13478662
复制相似问题