OGNL


De Wikipedia, la enciclopedia libre
Saltar a navegación Saltar a búsqueda

Object-Graph Navigation Language (OGNL) es un lenguaje de expresión (EL) de código abierto para Java que, si bien utiliza expresiones más simples que la gama completa de las que admite el lenguaje Java, permite obtener y establecer propiedades (a través de setProperty definido y getProperty métodos, que se encuentran en JavaBeans ), y la ejecución de métodos de clases Java. También permite una manipulación de matrices más sencilla.

Está destinado a ser utilizado en aplicaciones Java EE con taglibs como lenguaje de expresión.

OGNL fue creado por Luke Blanshard y Drew Davidson de OGNL Technology . [1] El desarrollo de OGNL fue continuado por OpenSymphony , que cerró en 2011. [2] OGNL se desarrolla ahora como parte de Apache Commons .

Tecnología OGNL

OGNL comenzó como una forma de mapear asociaciones entre componentes de front-end y objetos de back-end usando nombres de propiedad. A medida que estas asociaciones reunieron más funciones, Drew Davidson creó el lenguaje de codificación de valores clave (KVCL). Luke Blanshard volvió a implementar KVCL usando ANTLR y comenzó a usar el nombre OGNL. La tecnología se volvió a implementar nuevamente utilizando el compilador de compiladores de Java ( JavaCC ).

OGNL utiliza la reflexión e introspección de Java para abordar el gráfico de objetos de la aplicación en tiempo de ejecución. Esto permite que el programa cambie el comportamiento según el estado del gráfico del objeto en lugar de depender de la configuración del tiempo de compilación. También permite cambios en el gráfico de objetos.

Proyectos que utilizan OGNL

Problemas de seguridad de OGNL

Debido a su capacidad para crear o cambiar código ejecutable, OGNL es capaz de introducir fallas de seguridad críticas en cualquier marco que lo utilice. [ cita requerida ] Varias versiones de Apache Struts 2 han sido vulnerables a fallas de seguridad de OGNL. [3] A partir de octubre de 2017, la versión recomendada de Struts 2 es 2.5.13. [4] Se insta a los usuarios a actualizar a la última versión, ya que las revisiones anteriores tienen vulnerabilidades de seguridad documentadas; por ejemplo, las versiones 2.3.5 a 2.3.31 y 2.5 a 2.5.10 de Struts 2 permiten que atacantes remotos ejecuten código arbitrario . [5]Atlassian Confluence se ha visto afectado por un problema de seguridad OGNL que permitía la ejecución de código remoto arbitrario y requería que todos los usuarios se actualizaran. [6]

Ver también

enlaces externos

  • Rama de mantenimiento OGNL 3.x
  • Página de inicio de OGNL 4.x (Apache)
  • Apache Struts CVE-2013-2134 Vulnerabilidad de inyección de expresión OGNL

Referencias

  1. ^ "ognl.org" , OGNL Technology, Inc , archivado desde el original el 25 de octubre de 2008 , consultado el 5 de noviembre de 2013
  2. ^ "OpenSymphony, RIP (2000-2011)" . Sinfonía abierta . Archivado desde el original el 5 de septiembre de 2013 . Consultado el 1 de junio de 2011 .
  3. ^ "Apache Struts: lista de vulnerabilidades de seguridad" . cvedetails.com . Consultado el 2 de octubre de 2017 .
  4. ^ "Lanzamientos de Apache Struts" . struts.apache.org . Consultado el 2 de octubre de 2017 .
  5. ^ Goodin, Dan (9 de marzo de 2017). "Vulnerabilidad crítica bajo ataque" masivo "pone en peligro sitios de alto impacto [Actualizado]" . Ars Technica . Consultado el 2 de octubre de 2017 .
  6. ^ "[CONFSERVER-67940] Inyección OGNL de trabajo web de Confluence Server - CVE-2021-26084 - Crear y realizar un seguimiento de las solicitudes de funciones para los productos de Atlassian" . jira.atlassian.com . Consultado el 18 de octubre de 2021 .


Obtenido de " https://en.wikipedia.org/w/index.php?title=OGNL&oldid=1050498288 "