Безопасность Java против ESAPI

Я - разработчик Java, идущий по пути, ведущему к безопасности приложений, и я наткнулся на организацию OWASP и ее сопутствующий Java API, ESAPI.

В другом вопросе, который я задавал на этом сайте несколько месяцев назад, мне было указано, что ESAPI является крупным игроком в индустрии приложений с открытым исходным кодом.

Что мне сейчас интересно, так это то, что я уверен, что ESAPI перекрывается со встроенной моделью безопасности Java (с корнем в javax.security.auth) в областях аутентификации / авторизации и, возможно, в других областях. Но есть ли области приложения sec, в которых ESAPI четко обращается, чего нельзя достичь, если строго придерживаться API безопасности Java?

По сути, я спрашиваю, имеет ли смысл изучать ESAPI, если все его преимущества / возможности уже включены в некоторые существующие Java API. Заранее спасибо!

3 ответа

Решение

AFAIK, ESAPI также использует Java API и добавляет оболочку, специфичную для реальных угроз. Например, WAF (брандмауэр веб-приложения), чтобы достичь этого с помощью Java API, вы закончите писать большую часть кода, которая была сделана ESAPI и красиво завернута как API, так что теперь, если вы хотите выполнять проверки WAF, вы можете просто реализуйте это с помощью пары вызовов методов.

Проще говоря, ESAPI - это что-то вроде библиотеки-оболочки (встроенного Java-API), которая сокращает повторное изобретение колеса и помогает противодействовать угрозам безопасности в реальном мире.

Если вы видите этот URL-адрес ESAPI API, вы можете легко определить, как ESAPI разработал API для противодействия каждой возможной угрозе.

Одним из ключевых преимуществ / преимуществ ESAPI являются возможности проверки входных данных и очистки выходных данных, которые, AFAIK, классы безопасности Java в настоящее время не рассматривают. ESAPI специально нацелен на домен безопасности веб-приложений, и именно в этом его превосходство.

У меня только мимолетное знакомство с Java и ESAPI, поскольку я являюсь разработчиком.NET. Однако, как бешено-параноидальный разработчик, который сосредоточен на написании безопасного кода (потому что я написал действительно ужасные вещи), это то, на что я смотрел.

На мой взгляд, это абсолютно стоит изучить это. Абсолютно возможно написать хороший код без этих пакетов, но использование этих пакетов облегчает написание хорошего кода.

Что касается.NET, у нас есть нечто подобное, которое я использую - библиотека шаблонов и практик Microsoft. Из того, что я понимаю, Java ESAPI служит аналогичной цели, а именно:

Он предоставляет набор простых в использовании методов, которые уже используют передовые методы, так что вам не придется сильно беспокоиться об этом.

Например (и это только одна крошечная часть того, что требуется для написания защищенных приложений), используя ADO.NET и Java, очень легко писать операторы SQL, объединяя пользовательский ввод в строки (плохо), и это также просто в использовании. параметризованные запросы (хорошо). Используя API, выявляются методы, которые используют хорошие шаблоны под капотом. проще получить нового разработчика, работающего быстро, и убедиться, что вы не получаете "неряшливый", позволяя писать меньше кода.

Другие вопросы по тегам