【问题标题】:PHP Image Upload Security - gd / imagick / move_upload_filePHP 图片上传安全 - gd / imagick / move_upload_file
【发布时间】:2013-10-10 08:08:17
【问题描述】:

我目前上传图片的编码 如果我的编码是可破解的,请告诉我你将如何做。我会在我的服务器上自己尝试一下。

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; 
  }
}

** 我从未尝试过 imagick 将文件上传到服务器。我正在使用它来处理图像。

或者我需要将它们结合起来以安全的方式上传文件吗?

【问题讨论】:

    标签: php imagick


    【解决方案1】:

    对于 Nginx,要禁用脚本的执行,你的方法是正确的。要禁止更多脚本类型,

    location ~* ^/(upload|images|more_dirs)/.*\.(php|php5|sh|more_types)$ 
    { 
        deny all; 
    }
    

    【讨论】:

      猜你喜欢
      • 2012-09-18
      • 2013-07-09
      • 1970-01-01
      • 1970-01-01
      • 2023-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-09
      相关资源
      最近更新 更多