php.ini 中的 max_input_vars 实际影响什么,什么是安全的高值?

ken*_*in9 5 php apache http-post

我知道 php.ini 的值max_input_vars默认为 1000(我使用的是 5.6 版)。我的 POST 数据被截断了,所以我需要增加这个值。这确实解决了我的问题。在更改这些值时,我只是想了解它实际上具体影响了什么。

如果我向后端发送一组数据,这是否意味着它只能包含大约 1000 个元素?看起来我的表单总和没有达到 1000 个输入字段,所以我试图弄清楚这个数字是做什么用的。

我可以达到的安全高数是多少?10000会不会太高了?

Mac*_*ity 5

基本上,这就是我们所说的“健全性检查”。它将请求限制在一个合理的水平,以防止拒绝服务攻击之类的事情。

从手册

可以接受多少输入变量(限制分别应用于 $_GET、$_POST 和 $_COOKIE 超全局变量)。使用此指令可以减少使用哈希冲突的拒绝服务攻击的可能性。如果输入变量多于此指令指定的数量,则会发出 E_WARNING,并从请求中截断更多输入变量。

简而言之,将其提高到您需要的任何程度,并记住这会使您更容易受到可能使服务器陷入困境的攻击。本身没有“安全”数字。只是不要让您的服务器超载,否则您的 PHP 请求可能会开始超时或内存不足。