ОГНЛ
Разработчик(и) | ОГНЛ Технология |
---|---|
Стабильная версия | 3.0.8
/ 24 сентября 2013 г. |
Репозиторий | |
Написано в | Ява |
Операционная система | Кросс-платформенный |
Платформа | Виртуальная машина Java |
Тип | Язык выражений (EL) |
Лицензия | Лицензия БСД |
Веб-сайт | http://commons.apache.org/ognl/ |
Язык объектно-графической навигации (OGNL) — это язык выражений с открытым исходным кодом (EL) для Java , который, используя более простые выражения, чем полный диапазон выражений, поддерживаемых языком Java, позволяет получать и устанавливать свойства (через определенные setProperty и getProperty). методы, найденные в JavaBeans ), и выполнение методов классов Java. Это также позволяет упростить манипуляции с массивами.
Он предназначен для использования в Java EE приложениях с библиотеками тегов в качестве языка выражений.
OGNL был создан Люком Бланшардом и Дрю Дэвидсоном из OGNL Technology . [ 1 ] Развитие OGNL продолжила компания OpenSymphony , закрывшаяся в 2011 году. [ 2 ] OGNL сейчас разрабатывается как часть Apache Commons .
ОГНЛ Технология
[ редактировать ]OGNL зародился как способ сопоставить связи между внешними компонентами и внутренними объектами с помощью имен свойств. По мере того, как эти ассоциации объединяли все больше функций, Дрю Дэвидсон создал язык кодирования значений ключей (KVCL). Затем Люк Бланшард переопределил KVCL, используя ANTLR , и начал использовать имя OGNL. Технология была снова реализована с использованием компилятора Java Compiler ( JavaCC ).
OGNL использует отражение и самоанализ Java для обращения к графу объектов приложения времени выполнения. Это позволяет программе изменять поведение в зависимости от состояния графа объекта, а не полагаться на настройки времени компиляции. Это также позволяет вносить изменения в граф объекта.
Проекты с использованием OGNL
[ редактировать ]- WebWork и его преемник Struts 2
- Гобелен (4 и ранее)
- Весенний веб-поток
- Апач Клик
- MyBatis — платформа сопоставления SQL
- Thymeleaf . — механизм шаблонов 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 ] Atlassian Confluence неоднократно [ 6 ] [ 7 ] были затронуты проблемы безопасности OGNL, которые позволяли выполнять произвольный удаленный код и требовали обновления от всех пользователей.
См. также
[ редактировать ]Внешние ссылки
[ редактировать ]- Ветка обслуживания OGNL 3.x
- Домашняя страница OGNL 4.x (Apache)
- Apache Struts CVE-2013-2134 Уязвимость внедрения выражений OGNL
Ссылки
[ редактировать ]- ^ «ognl.org» , OGNL Technology, Inc , заархивировано из оригинала 25 октября 2008 г. , получено 5 ноября 2013 г.
- ^ «ОпенСимфони, РИП (2000 – 2011)» . Открытая симфония . Архивировано из оригинала 5 сентября 2013 года . Проверено 1 июня 2011 г.
- ^ «Apache Struts: Список уязвимостей безопасности» . cvedetails.com . Проверено 2 октября 2017 г.
- ^ «Выпуски Apache Struts» . struts.apache.org . Проверено 2 октября 2017 г.
- ^ Гудин, Дэн (9 марта 2017 г.). «Критическая уязвимость при «массированной» атаке ставит под угрозу важные сайты [обновлено]» . Арс Техника . Проверено 2 октября 2017 г.
- ^ «[CONFSERVER-67940] Внедрение OGNL в веб-интерфейс сервера Confluence — CVE-2021-26084 — Создание и отслеживание запросов функций для продуктов Atlassian» . jira.atlassian.com . Проверено 18 октября 2021 г.
- ^ «[CONFSERVER-79000] Уязвимость удаленного выполнения кода без проверки подлинности посредством внедрения шаблона OGNL (CVE-2022-26134)» . jira.atlassian.com . Проверено 3 июня 2022 г.