Безопасность Java против ESAPI - PullRequest
9 голосов
/ 11 января 2012

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

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

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

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

Ответы [ 3 ]

7 голосов
/ 11 января 2012

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

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

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

3 голосов
/ 15 ноября 2012

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

1 голос
/ 11 января 2012

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

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

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

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

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

...