我可以伪造上传的图片文件大小吗?

时间:2015-05-05 09:12:23

标签: forms security laravel-5 image-uploading

我正在构建一个简单的图像文件上传表单。以编程方式,我正在使用Laravel 5框架。通过Input facade(通过Illuminate),我可以解析文件对象,它本身就是一个UploadedFile(通过Symfony)。

UploadedFile的API参考页面(Symfony docs)表示

  

公共整数| null getClientSize ()

     

返回文件大小。它是从请求中提取出来的   文件已上传。 不应将其视为安全   value。返回值整数| null文件大小

  • 错误报告上传的文件大小的情况是什么?
  • 是否有使用此功能的已知漏洞?
  • 管理员如何确保检测到这种情况(因此记录为非法侵入尝试)?

1 个答案:

答案 0 :(得分:1)

该方法使用“Content-Length”标题,可以轻松伪造。你会想要使用简单的构造$ _FILES ['myfile'] ['size']。作为另一个问题的答案已经说明:Can $_FILES[...]['size'] be forged?

此值检查文件的实际大小,并且不会被提供的标头修改。

如果你想检查行为不端的人,你可以简单地将内容长度标题与$ _FILES ['myfile'] ['size']值进行比较。