OGNL - OGNL
Разработчики) | Технология OGNL |
---|---|
Стабильный выпуск | 3.0.8 / 24 сентября 2013 г. |
Написано в | Ява |
Операционная система | Кроссплатформенность |
Платформа | Виртуальная машина Java |
Тип | Язык выражений (EL) |
Лицензия | Лицензия BSD |
Интернет сайт | http://commons.apache.org/ognl/ |
Язык объектно-графической навигации (OGNL) с открытым исходным кодом Язык выражений (EL) за Ява, который, хотя и использует более простые выражения, чем полный набор выражений, поддерживаемых языком Java, позволяет получать и устанавливать свойства (через определенные методы setProperty и getProperty, найденные в JavaBeans ), и выполнение методов классов Java. Это также позволяет упростить манипуляции с массивами.
Он предназначен для использования в Java EE приложения с taglibs как язык выражения.
OGNL был создан Люком Бланшардом и Дрю Дэвидсоном из Технология OGNL.[1] Развитие OGNL продолжили OpenSymphony, который закрылся в 2011 году.[2] OGNL сейчас разрабатывается как часть Apache Commons.
Технология OGNL
OGNL возник как способ сопоставления ассоциаций между интерфейсными компонентами и внутренними объектами с использованием имен свойств. По мере того, как эти ассоциации собирали больше возможностей, Дрю Дэвидсон создал язык кодирования ключевых значений (KVCL). Люк Бланшард затем переопределил KVCL, используя ANTLR и начал использовать имя OGNL. Технология была снова реализована с использованием компилятора Java Compiler Compiler (JavaCC ).
OGNL использует Java отражение и самоанализ обратиться к Граф объектов исполняемого приложения. Это позволяет программе изменять поведение в зависимости от состояния графа объекта вместо того, чтобы полагаться на настройки времени компиляции. Он также позволяет вносить изменения в граф объекта.
Проекты с использованием OGNL
- WebWork и его преемник Стойки 2
- Гобелен (4 и ранее)
- Spring Web Flow
- Apache Click
- MyBatis - Фреймворк SQL mapper
- В Тимелист - Шаблонизатор Java XML / XHTML / HTML5
- FreeMarker - Шаблонизатор Java
Проблемы безопасности OGNL
Благодаря своей способности создавать или изменять исполняемый код, OGNL способен вносить критические недостатки безопасности в любую платформу, которая его использует.[нужна цитата ] Несколько Apache Struts 2 версии были уязвимы для недостатков безопасности OGNL.[3] По состоянию на октябрь 2017 г. рекомендуемая версия Struts 2 - 2.5.13.[4] Пользователям настоятельно рекомендуется выполнить обновление до последней версии, поскольку в более старых версиях были задокументированы уязвимости безопасности - например, Struts 2 версий 2.3.5–2.3.31 и 2.5–2.5.10 позволяет удаленным злоумышленникам выполнить произвольный код.[5]
Смотрите также
внешняя ссылка
- Ветка обслуживания OGNL 3.x
- Домашняя страница OGNL 4.x (Apache)
- Apache Struts CVE-2013-2134 Уязвимость внедрения выражений OGNL
Рекомендации
- ^ "ognl.org", OGNL Technology, Inc, заархивировано из оригинал 25 октября 2008 г., получено 5 ноября 2013
- ^ «OpenSymphony, RIP (2000 - 2011)». Открытая симфония. Архивировано из оригинал 5 сентября 2013 г.. Получено 1 июня 2011.
- ^ «Apache Struts: список уязвимостей безопасности». cvedetails.com. Получено Второе октября, 2017.
- ^ «Выпуски Apache Struts». struts.apache.org. Получено Второе октября, 2017.
- ^ Гудин, Дэн (9 марта 2017 г.). «Критическая уязвимость при« массированной »атаке ставит под угрозу высокоэффективные сайты [Обновлено]». Ars Technica. Получено Второе октября, 2017.
Этот язык программирования -связанная статья является заглушка. Вы можете помочь Википедии расширяя это. |