防止上传shell文件。 PHP

时间:2013-05-20 00:20:15

标签: php shell upload

我有图片上传网站。有人在这里上传shell文件。 我的验证是: - 检查文件的mime(只有图像的mimes能够) - 检查getimagesize是否返回数组(通过is_array) 如果没有,错误。 而且,有人正在上传shell文件。请帮忙。 Thnkas很多!

小检查:

$ext = ($_FILES['files']['type']); 

if (($ext != "image/jpeg") && ($ext != "image/pjpeg") && ($ext !="image/png") && ($ext != "image/gif") && ($ext != "image/bmp") && ($ext != "image/x-icon") && (!is_array(getimagesize($_FILES['files']['tmp_name'])))) {

    // Show error
} else {
    // Keep upload...
}

1 个答案:

答案 0 :(得分:1)

你应该检查文件权限,不应该由php执行。 可以很容易地将数据存储在图像的栅格数据矩阵中(显然)。

看看这些无辜的水母:

Innocent jellyfishes

Stackoverflow将我无辜的.BMP转换为.PNG

原始的.bmp可以在a friend's server找到。 如果你查看左下角,你会看到奇怪的像素,对应于像素数据中写入的ascii数据。

为了避免使用shell文件,你应该应用一个修改,它会改变图像的每个像素。

对我来说,转换(压缩)似乎是一个良好的开端。

祝你好运!