OGNL
DeveloperOGNL Technology
Stable release
3.0.8 / September 24, 2013 (2013-09-24)
Written inJava
Operating systemCross-platform
PlatformJava Virtual Machine
TypeExpression Language (EL)
LicenseBSD License
Websitehttp://commons.apache.org/ognl/
Repository

Object-Graph Navigation Language (OGNL) is an open-source Expression Language (EL) for Java, which, while using simpler expressions than the full range of those supported by the Java language, allows getting and setting properties (through defined setProperty and getProperty methods, found in JavaBeans), and execution of methods of Java classes. It also allows for simpler array manipulation.

It is aimed to be used in Java EE applications with taglibs as expression language.

OGNL was created by Luke Blanshard and Drew Davidson of OGNL Technology.[1] OGNL development was continued by OpenSymphony, which closed in 2011.[2] OGNL is developed now as a part of the Apache Commons.

OGNL Technology

edit

OGNL began as a way to map associations between front-end components and back-end objects using property names. As these associations gathered more features, Drew Davidson created Key-Value Coding language (KVCL). Luke Blanshard then reimplemented KVCL using ANTLR and started using the name OGNL. The technology was again reimplemented using the Java Compiler Compiler (JavaCC).

OGNL uses Java reflection and introspection to address the Object Graph of the runtime application. This allows the program to change behavior based on the state of the object graph instead of relying on compile time settings. It also allows changes to the object graph.

Projects using OGNL

edit

OGNL security issues

edit

Due to its ability to create or change executable code, OGNL is capable of introducing critical security flaws to any framework that uses it.[citation needed] Multiple Apache Struts 2 versions have been vulnerable to OGNL security flaws.[3] As of October 2017, the recommended version of Struts 2 is 2.5.13.[4] Users are urged to upgrade to the latest version, as older revisions have documented security vulnerabilities — for example, Struts 2 versions 2.3.5 through 2.3.31, and 2.5 through 2.5.10, allow remote attackers to execute arbitrary code.[5] Atlassian Confluence has repeatedly[6][7] been affected by OGNL security issues that allowed arbitrary remote code execution, and required all users to update.

See also

edit
edit

References

edit
  1. ^ "ognl.org", OGNL Technology, Inc, archived from the original on 25 October 2008, retrieved 5 November 2013
  2. ^ "OpenSymphony, RIP (2000 - 2011)". Open Symphony. Archived from the original on 5 September 2013. Retrieved 1 June 2011.
  3. ^ "Apache Struts : List of security vulnerabilities". cvedetails.com. Retrieved October 2, 2017.
  4. ^ "Apache Struts Releases". struts.apache.org. Retrieved October 2, 2017.
  5. ^ Goodin, Dan (March 9, 2017). "Critical vulnerability under "massive" attack imperils high-impact sites [Updated]". Ars Technica. Retrieved October 2, 2017.
  6. ^ "[CONFSERVER-67940] Confluence Server Webwork OGNL injection - CVE-2021-26084 - Create and track feature requests for Atlassian products". jira.atlassian.com. Retrieved 2021-10-18.
  7. ^ "[CONFSERVER-79000] Unauthenticated remote code execution vulnerability via OGNL template injection (CVE-2022-26134)". jira.atlassian.com. Retrieved 2022-06-03.


📚 Artikel Terkait di Wikipedia

Object Constraint Language

language nor the inherent difficulty of using complex mathematics. OCL is also a navigation language for graph-based models. OCL makes a Meta-Object Facility

Graph database

early 1990s. In 2000, the Object Data Management Group published a standard language for defining object and relationship (graph) structures in their ODMG'93

Navigational database

A navigational database is a type of database in which records or objects are found primarily by following references from other objects. The term was

InfiniteGraph

Multi-threaded. Query Methods: "DO" Query Language, Traverser and graph navigation API, predicate language qualification, path pattern matching. Parallel

Database model

directed graph (ownership defines a direction), or network construct. Access to records is either sequential (usually in each record type) or by navigation in

Apache Commons

create Model MBeans compatible with JMX specification OGNL Object-Graph Navigation Language Primitives Smaller, faster and easier to work with types supporting

Orientation

object in the space from its mirror image Orientation (graph theory), an assignment of a direction (orientation) to each edge of an undirected graph Orientation

Object database

into having intrinsic database management support for graph-structured objects. The term "object-oriented database system" first appeared around 1985.