upload_max_part_header_len
Директива `upload_max_part_header_len` настраивает максимально допустимую длину заголовков частей multipart при загрузке файлов в NGINX.
Описание
Директива upload_max_part_header_len — ключевой параметр конфигурации в модуле загрузки NGINX, специально предназначенный для определения максимально допустимой длины части заголовка каждой части в запросе multipart/form-data. Эта директива выполняет важную функцию, особенно при обработке загрузок файлов, поскольку помогает проверять входящие заголовки, которые содержат критически важную информацию о загружаемых файлах, такую как имена файлов, типы содержимого и другие метаданные. Если заголовки превышают заданную длину, запрос будет отклонён, что помогает предотвратить потенциальные атаки на основе заголовков или некорректные запросы, способные нарушить работу сервера.
Кроме того, эту директиву можно использовать в различных контекстах, включая http, server и location, что обеспечивает гибкую настройку в зависимости от конкретных потребностей обслуживаемого приложения. Параметр, следующий за директивой, — целое число, обозначающее максимальную длину в байтах. Значение по умолчанию для этой директивы — none, что означает отсутствие верхнего предела длины, если он явно не задан, что позволяет приложениям настраивать обработку заголовков исходя из собственных требований безопасности и производительности. Следует тщательно продумать задаваемое значение, соблюдая баланс между функциональностью и безопасностью, чтобы снизить риски, связанные с очень большими заголовками.
Пример конфига
server {
listen 80;
server_name example.com;
location /upload {
upload_pass /upload_handler;
upload_max_part_header_len 100k;
upload_store /tmp/uploads;
}
}Установка upload_max_part_header_len слишком низкого значения может привести к отклонению корректных запросов, особенно если ожидается, что метаданные файла будут большими.
Директива не влияет на общий размер тела запроса, а только на заголовки, связанные с отдельными частями multipart-запроса.