上传脚本使用谁的临时目录?
Whose temporary directory an upload script uses?
我正在我的 project.I 上构建一个上传功能,已经对存在、大小和类型进行了其他验证,但还有一些验证 needed.I 发现了 mime 验证,无论文件扩展名是什么用户上传它会检查真实文件 type.Below 每当用户尝试上传 .php 文件作为 .png/jpg/jpeg 或任何其他虚假扩展名时,代码是否对 me.Now 有效我的代码被捕获为恶意文件 type.But 我有一个问题,当用户首先上传文件时它是临时的 directory.Is 该临时目录是从客户端电脑还是从我们的服务器使用的?如果它来自我们的服务器那么恶意伪造的扩展文件是否会对我们造成危险?
$imageInfo = getimagesize($_FILES['file']['tmp_name']);
if ($imageInfo['mime'] == ("image/png") || $imageInfo['mime'] == ("image/jpeg")
|| $imageInfo['mime'] == ("image/jpg")) {
首先获取扩展,然后在如下 if 条件下使用扩展:
$extension = image_type_to_extension($imageInfo[2]);
来自manual:
Files will, by default be stored in the server's default temporary directory, unless another location has been given with the upload_tmp_dir directive in php.ini
. The server's default directory can be changed by setting the environment variable TMPDIR in the environment in which PHP runs.
The file will be deleted from the temporary directory at the end of the request if it has not been moved away or renamed.
除非你故意做一些愚蠢的事情,比如在那个临时目录中找到 运行 文件,或者让它们成为 运行,否则你没问题。一个文件只存在很短的时间就被删除并不危险。
临时目录来自您的服务器,可以在临时目录中执行文件,因此您可以运行 sys_get_temp_dir() 这样您就可以知道临时目录的位置目录并将权限更改为只读和只写。
我正在我的 project.I 上构建一个上传功能,已经对存在、大小和类型进行了其他验证,但还有一些验证 needed.I 发现了 mime 验证,无论文件扩展名是什么用户上传它会检查真实文件 type.Below 每当用户尝试上传 .php 文件作为 .png/jpg/jpeg 或任何其他虚假扩展名时,代码是否对 me.Now 有效我的代码被捕获为恶意文件 type.But 我有一个问题,当用户首先上传文件时它是临时的 directory.Is 该临时目录是从客户端电脑还是从我们的服务器使用的?如果它来自我们的服务器那么恶意伪造的扩展文件是否会对我们造成危险?
$imageInfo = getimagesize($_FILES['file']['tmp_name']);
if ($imageInfo['mime'] == ("image/png") || $imageInfo['mime'] == ("image/jpeg")
|| $imageInfo['mime'] == ("image/jpg")) {
首先获取扩展,然后在如下 if 条件下使用扩展:
$extension = image_type_to_extension($imageInfo[2]);
来自manual:
Files will, by default be stored in the server's default temporary directory, unless another location has been given with the upload_tmp_dir directive in
php.ini
. The server's default directory can be changed by setting the environment variable TMPDIR in the environment in which PHP runs.
The file will be deleted from the temporary directory at the end of the request if it has not been moved away or renamed.
除非你故意做一些愚蠢的事情,比如在那个临时目录中找到 运行 文件,或者让它们成为 运行,否则你没问题。一个文件只存在很短的时间就被删除并不危险。
临时目录来自您的服务器,可以在临时目录中执行文件,因此您可以运行 sys_get_temp_dir() 这样您就可以知道临时目录的位置目录并将权限更改为只读和只写。