gpt4 book ai didi

php - 安全图片上传 PHP

转载 作者:行者123 更新时间:2023-12-01 00:11:24 28 4
gpt4 key购买 nike

在我的网站上,我允许用户使用以下方式上传图片...

$max_filesize = 1572864; // 1.5MB
$upload_path = 'uploads';
$upload_path = $upload_path.'/';

$filename = $_FILES['profile_image']['name'];


if(filesize($_FILES['profile_image']['tmp_name']) > $max_filesize)
die('The file you attempted to upload is too large.');
if(!is_writable($upload_path))
die('permission errorrr!');

if(move_uploaded_file($_FILES['profile_image']['tmp_name'],$upload_path . $filename)){
// TA DA!
}

我只是在输入了关于它的安全性以及如何使其更加安全的一些意见后,我问我已经设法将文件从 .png 文件更改为 .jpg 并上传它,所以理论上 .exe 可以被重命名和上传,如果是这样,如何应对?

最佳答案

Mime 类型不可信,因此,正如@yoeriboven 所说,您可以使用:

if (!getimagesize($_FILES['profile_image']['tmp_name'])){
die('Not an image');
}

但您也可以不允许执行任何上传到您的上传文件夹的文件。您可以使用 .htaccess(假设您使用的是 Apache)执行以下操作:

AddHandler cgi-script .php .pl .py .jsp .asp .htm .shtml .sh .cgi
Options -ExecCGI

为了帮助用户,您可以做的另一件小事是使用 HTML5 的 accept 属性:

<input type="file" name="file" accept="image/gif, image/jpeg" />

(很明显,上面的内容可以在客户端更改,因此不能依赖它)

关于php - 安全图片上传 PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16938950/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com