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 文件。 反之亦然。然后文件格式限制可以对您的表格有好处。