'max_file_uploads' 限制的具体作用是什么?

What is exactly the function of the 'max_file_uploads' limitation?

PHP 有一个 ini 设置 'max_file_uploads' 可以防止一次上传超过给定数量的文件。默认是20,可以改成任何东西(我觉得)。

鉴于还有 'post_max_size' 和 'upload_max_filesize',这究竟能防止什么?我的意思是,如果我将此限制更改为 999 之类的巨大值,那么我 运行 会有什么安全风险,所以它不会妨碍,同时将其他两个限制保持在某个合理的水平?

您可以将其视为纵深防御,这是针对文件上传的一般威胁的额外保护层。

直接想到的一个是攻击者上传许多非常小(或 0 字节)的文件。这些通常会存储在临时目录中(通常 /tmp),并且在许多文件系统上,一个目录中的文件数量是有限制的,而且很多文件也会影响文件系统的性能。

这是您可以决定接受或实施其他缓解措施的风险,因此此 php 设置不会“妨碍”。老实说,在许多应用程序中,这可能永远不会导致问题,但您需要了解并做出明智的决定。在一些更高安全性的应用程序中,增加或删除此限制可能是不可接受的。