Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/242.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP-当我可以通过$\u文件数组获取pathinfo时,为什么要使用它_Php - Fatal编程技术网

PHP-当我可以通过$\u文件数组获取pathinfo时,为什么要使用它

PHP-当我可以通过$\u文件数组获取pathinfo时,为什么要使用它,php,Php,为什么我要使用此代码获取文件名 $filename = pathinfo($_FILES['file']['name'], PATHINFO_FILENAME) 如果我也可以通过以下代码获取名称: $filename = $_File['file']['name'] 多谢各位!我是一名PHP初学者,如果这个问题太愚蠢,那么很抱歉:D因为$\u File['File']['name']来自用户端,虽然通常只是文件名,但恶意用户实际上可以将其设置为他想要的任何内容(例如:覆盖服务器中文件的完整路

为什么我要使用此代码获取文件名

$filename = pathinfo($_FILES['file']['name'], PATHINFO_FILENAME)
如果我也可以通过以下代码获取名称:

$filename = $_File['file']['name']

多谢各位!我是一名PHP初学者,如果这个问题太愚蠢,那么很抱歉:D

因为
$\u File['File']['name']
来自用户端,虽然通常只是文件名,但恶意用户实际上可以将其设置为他想要的任何内容(例如:覆盖服务器中文件的完整路径名)你必须像其他用户输入一样过滤它,以防止系统中的攻击向量。 对于
$\u文件中的所有内容也是如此,不要信任通知的MIME
类型
,在未检查扩展名是否安全的情况下不要保存文件(保存
.php
文件将是一场灾难)等等


例如,我见过一个系统,它信任
类型
等于
图像/jpeg
的文件和其他图像类型,然后保存它而不检查实际的文件扩展名。伪造的请求可以将
.php
shell脚本注入此网站的上载文件夹并用于控制。

pathinfo($\u FILES['file']['name'],pathinfo\u FILENAME)
从完整文件名中删除扩展名,如果这是必需的,这将是使用它的原因非常感谢!!我会记住,我永远不应该相信我从用户那里得到的数据。我将学习编程/php中的更多安全知识!非常感谢你!!