PHP 5.2.2, випущений 3 травня 2007 року, запровадив директиву max_input_nesting_level, що стала важливим інструментом для захисту веб-додатків від атак, спрямованих на вичерпання ресурсів через надмірно вкладені масиви вхідних даних. Це оновлення дозволяє адміністраторам чітко обмежити глибину вкладеності даних, що надходять через HTTP-запити.
Обмеження вкладеності запобігає переповненню стека та іншим проблемам продуктивності, які можуть виникнути при обробці зловмисно сформованих запитів. Встановлення розумного ліміту є необхідним заходом безпеки для будь-якого публічного API або форми, що приймає складні структури даних.
Рекомендації для розробників:
- Визначте необхідну глибину вкладеності для ваших форм та API-ендпоінтів.
- Налаштуйте директиву
max_input_nesting_levelу файліphp.iniвідповідно до потреб вашого додатку. - Проведіть тестування: надішліть запит із коректною структурою, а потім — із надмірно вкладеними масивами, щоб переконатися, що парсер коректно обробляє перевищення ліміту.
- Перевірте, чи не впливає нове обмеження на легітимні запити користувачів.