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

时间:2017-02-14 22:27:31

标签: php apache http-post

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

如果我向后端发送数据数组,这是否意味着它只能包含大约1000个元素?看起来我的表单总和出现在1000个输入字段中,所以我试图弄清楚这个数字的用途。

我能去的安全高数是多少? 10000会被认为太高吗?

1 个答案:

答案 0 :(得分:3)

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

From the manual

  

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

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