Необходимость внедрения функционала input validation


Одной из наиболее актуальных проблем работы веб-приложений была и остается необходимость внедрения функционала input validation. С точки зрения лучших практик безопасности оптимальным является соблюдение принципа «trust no one». Иными словами любой input каких-либо данных в приложение должен восприниматься самим приложением как потенциальная угроза. Исходя из этого необходимо закладывать функционал синтактической и семантической проверки вводимых данных.

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

Input Validation является одним из краеугольных камней безопасности веб-приложения, которым нельзя пренебрегать. Большое количество уязвимостей, которые могут быть реально проэксплуатированы, связаны именно с несоблюдением лучших рекомендаций в этой области. Основные практические рекомендации по соблюдению методик Input Validation подробно изложены в OWASP ASVS (пятый раздел). Мы настоятельно рекомендуем всем создателям веб-приложений ознакомиться с OWASP ASVS и неукоснительно применять данные положения при разработке веб-приложений.