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

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

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

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

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


person IAmYourFaja    schedule 11.01.2012    source источник


Ответы (3)


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

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

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

person kosa    schedule 11.01.2012
comment
Спасибо! Означает ли это, что при максимальном использовании ESAPI мне не нужно будет реализовывать или настраивать какие-либо специфичные для Java API элементы, такие как SecurityManager? По сути, я спрашиваю, может ли использование ESAPI охватывать все основы, предоставляемые встроенной моделью безопасности Java. Спасибо еще раз! - person IAmYourFaja; 11.01.2012
comment
Вы можете закончить с конфигурацией ESAPI. Помните, что вы не можете полностью избежать конфигураций. Это основные параметры для любого программного обеспечения. - person kosa; 11.01.2012

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

person Mark Gee    schedule 15.11.2012

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

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

Что касается .NET, у нас есть что-то похожее, что я использую — библиотека Microsoft Patterns and Practices. Насколько я понимаю, Java ESAPI служит аналогичной цели, а именно:

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

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

person David    schedule 11.01.2012
comment
Спасибо за такой отличный ответ, Дэйв! Пожалуйста, посмотрите мой комментарий под ответом @thinksteep — у меня к вам тот же вопрос! Спасибо еще раз! - person IAmYourFaja; 11.01.2012
comment
Я не могу конкретно ответить на этот комментарий, но в целом я не думаю, что он охватит все основания для вас. Ни один фреймворк не идеален и не охватывает все. Я считаю, что это хороший инструмент для вашего набора инструментов. Вам предстоит стать тем, кто научится умело обращаться с инструментами. Это будет означать, что нужно копаться и изучать ESAPI самостоятельно, чтобы найти такие ответы. По сути, я отвечал на ваш последний вопрос: есть ли смысл изучать ESAPI? - person David; 11.01.2012