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