PHP正在更改原始文件名

Day*_*ker 6 php escaping

我上传了文件,并尝试通过删除不需要的字符来处理奇怪的文件名。但是我遇到的情况是,我只是玩弄不需要的(字符)文件名,并得到以下结果:

我的错误文件名是:1\;ping\ -c1\ 1.1.1.1
Firefox正在发送:
Content-Disposition: form-data; name="send_file"; filename="1\;ping\ -c1\ 1.1.1.1"

但是PHP的$_FILES['send_file']['name']目的只是给我1.1.1.1(带有空格)作为名称。

总的来说这是可以忽略的,但是我想了解这里发生了什么

这是怎么回事 请赐教

使用的软件:

  • Ubuntu 18.04 LTS
  • 阿帕奇2.4.29
  • PHP-FPM 7.2
  • Firefox 70

Sty*_*tyx 2

PHP 的值$_FILES['send_file']['name']等于的值。Content-Dispositionfilename="..."

PHP 正在做一些清理:删除路径并仅存储文件名,就像文档中所述:

$_FILES['用户文件']['名称']

客户端计算机上文件的原始名称。

删除路径意味着最后一个斜杠/反斜杠(包括它们)之前的所有内容都被删除,这就是您所得到的。