stringtranslate.com

OGL (Olegario)

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 admitidas por el lenguaje Java, permite obtener y configurar propiedades (a través de los métodos setProperty y getProperty definidos, 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 front-end y objetos back-end usando nombres de propiedades. A medida que estas asociaciones adquirieron más funciones, Drew Davidson creó el lenguaje de codificación de valor-clave (KVCL). Luego, Luke Blanshard reimplementó KVCL usando ANTLR y comenzó a usar el nombre OGNL. La tecnología se volvió a implementar usando el compilador Java Compiler ( JavaCC ).

OGNL utiliza la reflexión y la 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 su comportamiento en función del estado del gráfico de objetos en lugar de depender de la configuración en tiempo de compilación. También permite realizar 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 use. [ cita requerida ] Varias versiones de Apache Struts 2 han sido vulnerables a fallas de seguridad de OGNL. [3] A 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 han documentado vulnerabilidades de seguridad; por ejemplo, las versiones 2.3.5 a 2.3.31 y 2.5 a 2.5.10 de Struts 2 permiten a atacantes remotos ejecutar código arbitrario . [5] Atlassian Confluence se ha visto afectado repetidamente [6] [7] por problemas de seguridad de OGNL que permitían la ejecución remota de código arbitrario y requerían que todos los usuarios actualizaran.

Véase también

Enlaces externos

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)". Open Symphony . 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 de OGNL en Confluence Server Webwork - CVE-2021-26084 - Creación y seguimiento de solicitudes de funciones para productos Atlassian". jira.atlassian.com . Consultado el 18 de octubre de 2021 .
  7. ^ "[CONFSERVER-79000] Vulnerabilidad de ejecución remota de código no autenticado mediante inyección de plantilla OGNL (CVE-2022-26134)". jira.atlassian.com . Consultado el 3 de junio de 2022 .