Блокируется загрузка файлов | Немезида ВАФ


Блокировка запросов при загрузке файлов на сервер веб-приложения — одна из наиболее распространенных проблем, с которой может столкнуться пользователь при работе с WAF. Блокировка в этом случае может происходить по двум основным причинам:

  • ограничение веб-сервера на передачу файлов определенного размера;
  • передача бинарных данных.

Ограничение веб-сервера на передачу файлов определенного размера

Каждый веб-сервер в целях безопасности настроен на передачу файлов определенного размера (например, 1Мб для веб-сервера Nginx). При отправке клиентом файла больше допустимого размера веб-сервер возвращает ответ с кодом 413 Request Entity Too Large. Основываясь на ограничениях веб-сервера, Немезида ВАФ также производит блокировку запроса при попытке загрузки файлов несоответствующего размера. Для исключения блокировок достаточно привести значение опции client_max_body_size в соответствующем файле конфигурации веб-сервера к максимально допустимому значению размера передаваемых на веб-сервер файлов.

Пример:

client_max_body_size 30M;

После внесения изменений выполните перезапуск веб-сервера любым удобным способом для применения изменений.

Передача бинарных данных в запросе

Блокировка запросов в этом случае происходит из-за того, что при передаче файлов (PDF-документов, фотографий, файлов мультимедиа) по протоколу HTTP производится бинарное кодирование передаваемых данных. Закодированное содержимое представляет собой набор символов, при анализе которых практически всегда обнаруживаются последовательности символов, попадающие под одну или несколько сигнатур. После обнаружения сигнатур запрос блокируется. Из-за особенностей, описанных выше, анализ бинарного содержимого запросов является нецелесообразным, поэтому для URL-адресов, которые предназначены для загрузки файлов, рекомендуется деактивировать анализ сигнатурным методом.

Как определить, что передается бинарное содержимое

Проверьте содержимое заголовка Content-Type. Если передается бинарное содержимое, то, в зависимости от типа файла, это может быть:

Полный перечень значений
application/andrew-inset
application/applixware
application/cu-seeme
application/epub+zip
application/gzip
application/mac-
application/marc
application/mathematica
application/mbox
application/mp4
application/msword
application/mxf
application/octet-stream
application/oda
application/ogg
application/onenote
application/pdf
application/pgp-
application/pics-rules
application/pkcs
application/pkix
application/postscript
application/prs.cww
application/relax-ng-compact-syntax
application/resource-lists
application/scvp-
application/sdp
application/set-
application/sparql-
application/vnd.
application/winhlp
application/x-7z-compressed
application/x-abiword
application/x-ace-compressed
application/x-authorware-
application/x-bcpio
application/x-bittorrent
application/x-bzip
application/x-cdlink
application/x-chess-pgn
application/x-cpio
application/x-csh
application/x-csv
application/x-debian-package
application/x-director
application/x-doom
application/x-dvi
application/x-ecmascript
application/x-futuresplash
application/x-gnumeric
application/x-gtar
application/x-gzip
application/x-hdf
application/x-killustrator
application/x-krita
application/x-latex
application/x-mobipocket-ebook
application/x-ms
application/x-netcdf
application/x-pdf
application/x-pkcs
application/x-python-code
application/x-rar-compressed
application/x-redhat-package-manager
application/x-rpm
application/x-shockwave-flash
application/x-silverlight-app
application/x-sqlite3
application/x-stuffit
application/x-sv4
application/x-tar
application/x-tcl
application/x-tex
application/x-trash
application/x-ustar
application/x-wais-source
application/x-x509-ca-cert
application/x-xfig
application/x-xpinstall
application/x-zip-compressed
application/zip
x-conference/x-cooltalk
audio/*
image/*
model/*
video/*

Также стоит обратить внимание на содержимое запроса, где в начале указывается «сигнатура» файла. Для PDF-файла сигнатура может быть записана как %PDF-1.3.%, а для, RAR-архивов — Rar!....

Чтобы исключить обработку тела запроса сигнатурным методом для URL-адреса, необходимо в Личном кабинете использовать соответствующую опцию:


Отключение анализа для URL-адреса example.com/uploads/

Поскольку опция отключает проверку содержимого файлов сигнатурным методом, то функционал передачи файлов остается практически без защиты и может стать целью для злоумышленников, поэтому рекомендуется активировать проверку передаваемых файлов антивирусным ПО, например, ClamAV.