Существуют ли какие-либо дополнительные преимущества для использования библиотеки ESAPI, или я могу просто удалить пользовательское ограничение и добавить аннотации проверки бина?
Короче говоря, да. Если вы заметили последний параметр в вызове #isValidInput, на который вы ссылаетесь, заключается в том, следует ли включить канонизация включена или выключена. Если ваше приложение отключило его, единственное преимущество, которое даст вам ESAPI, — это передача вашего регулярного выражения проверки в validation.properties, где, если возникнет проблема с продуктом, вы можете изменить значение и перезапустить сервер, сохранив сборку и развертывание приложения. JSR-303 потребует перекомпиляции и развертывания.
Однако, если вы оставили канонизацию включенной, ESAPI предоставляет одну вещь, которую я не нашел в другой библиотеке безопасности Java на сегодняшний день, а именно способность обнаруживать смешанная кодировка и множественная кодировка для заданной входной строки. С точки зрения судебной экспертизы и реагирования на инциденты, это чрезвычайно полезно, поскольку мы можем определить, подвергается ли наше веб-приложение атаке в режиме реального времени, а также записывать и проверять информацию о пользователе, который это делает.
^^^Похоже, ты все это знаешь по своему последнему утверждению. Я не видел веб-контейнера, который не прошел бы Strings
для чисел. Я предполагаю, что вы извлекаете его из request.getParameter("foo");
, что означает, что это строка, и вам все еще нужна защита, обеспечиваемая канонизацией. Даже если он может попасть в исключение синтаксического анализа при преобразовании в Integer
или Long
, есть также риск переполнения или недополнения, что может нарушить работу вашего приложения по-другому.
person
avgvstvs
schedule
09.10.2015