W PHP 5.3 pojawiła się nowa zmienna: max_input_vars, która limituje ilość pól możliwych do przesłania przez formularz, obcinając nadmiarowe. Pozwala to zapobiec atakom DoS na tablice hashujące (przynajmniej w tym jednym miejscu). Domyślna wartość tej zmiennej to 1000 i kreatywnym programistom udaje się tą wartość bez problemu osiągnąć 😃

Warte odnotowania jest to że mając suhosin’a trzeba pamiętać o jeszcze dwóch innych zmiennych:

max_input_vars = 3000
suhosin.post.max_vars = 3000
suhosin.request.max_vars = 3000

Zmienne można zmienić od razu w /etc/php5/apache2/php.ini (choć te dla suhosin’a lepiej wrzucić do /etc/php5/conf.d/suhosin.ini). A jeszcze lepszym pomysłem jest ustawienie tych zmiennych bezpośrednio dla danego vhost’a, w Apache’m np. tak:

php_value max_input_vars 3000
php_value suhosin.post.max_vars 3000
php_value suhosin.request.max_vars 3000