PHP: $_FILES - 我为什么要限制特定的文件类型?
PHP: $_FILES - Why should i restrict specific file types?
今天我在网上浏览如何使用 php 公式将文件上传到我的网络服务器,但不知何故 每个人 只允许特定的文件类型(和限制所有其他人)。对于想要上传图片的人来说,看到网页不排除该文件类型是不好的。其他文件类型有什么问题(例如,直接来自 w3schools.com:只允许 JPG、JPEG、PNG 和 GIF)。
提前谢谢,
维克工作室
这主要是出于安全原因。 $_FILES
中的所有内容都来自用户的浏览器,因此如果您没有对您接受的内容进行严格验证,恶意用户可能会上传
- 太大 - 如果有人上传 10 GB 的图片怎么办?
- 文件类型危险 — 如果有人将
.php
文件上传到您的服务器怎么办?游戏结束。
- 名称无效 — 如果有人将文件名设置为
../../../file.txt
怎么办?当您保存文件时,由于路径中的 ../..
,它可能最终位于不同的目录中。这称为 Path Traversal 漏洞。
处理文件上传时,您应该根据白名单 验证所有这三个。也就是说,有一个您接受的值列表或范围,并丢弃任何不符合这些标准的值。
假设您要上传个人资料图片,而用户正在尝试上传 doc 文件。
反之亦然。然后文件格式限制可以对您的表格有好处。
今天我在网上浏览如何使用 php 公式将文件上传到我的网络服务器,但不知何故 每个人 只允许特定的文件类型(和限制所有其他人)。对于想要上传图片的人来说,看到网页不排除该文件类型是不好的。其他文件类型有什么问题(例如,直接来自 w3schools.com:只允许 JPG、JPEG、PNG 和 GIF)。
提前谢谢,
维克工作室
这主要是出于安全原因。 $_FILES
中的所有内容都来自用户的浏览器,因此如果您没有对您接受的内容进行严格验证,恶意用户可能会上传
- 太大 - 如果有人上传 10 GB 的图片怎么办?
- 文件类型危险 — 如果有人将
.php
文件上传到您的服务器怎么办?游戏结束。 - 名称无效 — 如果有人将文件名设置为
../../../file.txt
怎么办?当您保存文件时,由于路径中的../..
,它可能最终位于不同的目录中。这称为 Path Traversal 漏洞。
处理文件上传时,您应该根据白名单 验证所有这三个。也就是说,有一个您接受的值列表或范围,并丢弃任何不符合这些标准的值。
假设您要上传个人资料图片,而用户正在尝试上传 doc 文件。 反之亦然。然后文件格式限制可以对您的表格有好处。