在PHP中允许大文件上传时,是否存在任何安全性和/或性能影响?例如,这些是我目前设置的PHP ini设置。
memory_limit = 950M
upload_max_filesize = 950M
post_max_size = 950M
max_execution_time = 0
这些设置可能出现什么问题?
答案 0 :(得分:3)
通过更改这些设置不会更改安全注意事项。但是,对于性能,以下内容有效:
以执行方式为用户提供服务的艺术是为用户总和提供足够的资源。根据您的设置将其转换为示例:
上传950 MB的10个用户需要以执行方式提供9.5 GB的带宽和I / O吞吐量(例如,由磁盘速度决定)。我用户可能会在1分钟内上传950 MB,但不满意这需要一个小时。
100个上传950 MB的用户需要您提供95 GB ...
1000个用户上传950 MB将需要您服务950 GB ... ...
原因并非所有用户都始终保持最大值,甚至并发上传可能也会受到限制。但是,这些最大设置会增加您的风险堆栈。因此,根据您的使用特征和您的资源填充,这些设置可能是有效的。
但是我假设你提供了极端的例子,并希望了解其含义。
当我google“optimize php memory_limit”时,我得到了这个: https://softwareengineering.stackexchange.com/questions/207935/benefits-of-setting-php-memory-limit-to-lower-value-for-specific-php-script
显然你可以对其他设置做同样的事情。
在论坛中,您可以发现很多人反对将这些配置值设置得如此之高。然而,在其他访问层上仔细管理资源利用率的环境中(例如,通过应用程序内部权限限制上传用户的数量)在过去很好地为我做好了。