允许在 PHP 中上传大文件(安全性)

Jen*_*ang 5 php ini

允许在 PHP 中上传大文件时,是否有任何安全和/或性能影响需要考虑?例如,这些是我目前设置的 PHP ini 设置。

memory_limit = 950M
upload_max_filesize = 950M
post_max_size = 950M
max_execution_time = 0
Run Code Online (Sandbox Code Playgroud)

如果有的话,这些设置会出现什么问题?

Qui*_*ker 2

更改这些设置不会改变安全注意事项。然而,对于性能而言,以下内容是有效的:

以高效的方式服务用户的艺术是为用户的总体需求提供足够的资源。根据您的设置将其转换为示例将类似于:

10 个用户上传 950 MB 的数据需要您提供 9.5 GB 的带宽和 I/O 吞吐量(例如,受磁盘速度的影响)。作为用户,我可能可以接受 1 分钟内上传 950 MB 的内容,但如果我花一个小时上传,我会感到不满意。

100 个用户上传 950 MB 需要您提供 95 GB 的服务...

1000 个用户上传 950 MB 需要您提供 950 GB 的服务......

当然,并非所有用户都始终追求最大,甚至并发上传也可能受到限制。然而,这些最大设置会增加您的风险堆栈。因此,根据您的使用特征和您的资源填充,这些设置可能是有效的。

不过,我认为您给出了极端的例子并想了解其含义。

当我谷歌“优化 php memory_limit”时,我得到这个: https: //softwareengineering.stackexchange.com/questions/207935/benefits-of-setting-php-memory-limit-to-lower-value-for-specific-php-脚本

显然,您可以对其他设置执行相同的操作。

在论坛中,您可以发现很多人反对将这些配置值设置得这么高。然而,在其他访问层上仔细管理资源利用率的环境中(例如,通过应用程序内权限限制上传用户的数量),在过去对我来说确实很有效。