我目前上传图片的编码 如果我的编码是可以破解的,请告诉我你将如何做。我会在我的服务器上自己尝试一下。
if ((strtolower($_FILES["user_image"]["type"]) == "image/jpeg" || strtolower($_FILES["user_image"]["type"]) == "image/pjpeg" || strtolower($_FILES["user_image"]["type"]) == "image/gif" || strtolower($_FILES["user_image"]["type"]) == "image/x-png" || strtolower($_FILES["user_image"]["type"]) == "image/png") && ($_FILES["user_image"]["size"] < 4194304)) {
if(strtolower($_FILES["user_image"]["type"]) == "image/jpeg" || strtolower($_FILES["user_image"]["type"]) == "image/pjpeg"){
$image_source = imagecreatefromjpeg($_FILES["user_image"]["tmp_name"]);
}
// if uploaded image was GIF
if(strtolower($_FILES["user_image"]["type"]) == "image/gif"){
$image_source = imagecreatefromgif($_FILES["user_image"]["tmp_name"]);
}
// if uploaded image was PNG
if(strtolower($_FILES["user_image"]["type"]) == "image/x-png" || strtolower($_FILES["user_image"]["type"]) == "image/png"){
$image_source = imagecreatefrompng($_FILES["user_image"]["tmp_name"]);
}
这是我正在使用的上传方法。
我们可以使用move_uploaded_file和imagick来上传文件。
问题:
**你将如何破解我的图片上传代码?
(我尝试使用假的jpeg标头和php-gd清理文件。)
**为什么告诉 move_uploaded_file 比imagecreatefrom [type]更安全(如果你说我的方法不安全)
我刚搬到nginx。 如何在上传目录中禁用所有脚本执行? php,sh,cgi,...
location /uploads/ {
location ~ .*\.(php)?$
{
deny all;
}
}
**我从未尝试过想象将文件上传到服务器。我用它来处理图像。
或者我是否需要将这些内容组合起来以安全的方式上传文件?
答案 0 :(得分:2)
对于Nginx,要禁用脚本的执行,您的方法是正确的。要禁止更多脚本类型,
location ~* ^/(upload|images|more_dirs)/.*\.(php|php5|sh|more_types)$
{
deny all;
}