繁体   English   中英

PHP文件上传被部分上传“劫持”

[英]PHP file uploads being “hijacked” by partial uploads

我有一个网站每天接收30-40k照片上传,我现在看到一个问题弹出频率更高。 这个问题是这样的:

我们的上传脚本(通过$ _FILES ['name'] ['tmp_name'])接收用户未上传的文件(照片),并且文件收到的大部分时间是“部分”上传。

当然起初我认为这是我的PHP代码犯了一个简单的错误,我花了几天时间查看它以确保,但在检查代码后我发现通过HTTP POST上传到PHP的文件实际上是错误的文件。 所以问题在它到达我的代码之前就已经发生了。 脚本收到的tmp文件(phpxxxx)有时不正确,好像它被某个方式被另一个进程覆盖,并且它通常被部分上传的文件覆盖。

有没有人见过像这样的问题? 任何帮助是极大的赞赏。 经过几天的搜索/询问其他PHP开发人员后,我将此作为最后的手段

所以回顾一下:

  • 用户上传照片
  • PHP脚本接收用户未上传的文件(预编码,通过/ var / tmp中的$ _FILES)
  • 通常收到的错误文件是部分上传或上传中断
  • 它似乎是随机发生的,而不是所有的时间

首先,检查PHP版本。

其次,检查php.ini中的文件上传限制和POST_MAX_SIZE

可能只是有人试图上传一个太大的文件:-)

您可以为临时文件尝试不同的名称以避免被覆盖吗? 你能确定新的,不正确和不完整的文件的来源吗?

这是一个开发环境吗? 是否可能有多个用户同时上传文件?

尝试使用非常小的图像来检查SchizoDuckie文件大小问题是否正确。

尝试使用不同的导航器来消除这是一个本地问题的可能性很小的可能性。

检查存储临时文件的目录的权限。

PHP的内置文件处理不支持部分上传。

每次上传后,请关闭KeepAlives和/或发送“Connection:close”标题。

配置您的Web服务器以发送标题'Allow-Ranges:none'。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM