OGNL
OGNL| 개발자 | OGNL 테크놀로지 |
|---|---|
| 안정된 릴리스 | 3.0.8 / 2013년 9월 24일 ( |
| 기입처 | 자바 |
| 운영 체제 | 크로스 플랫폼 |
| 플랫폼 | Java 가상 머신 |
| 유형 | 표현 언어(EL) |
| 면허증. | BSD 라이선스 |
| 웹 사이트 | http://commons.apache.org/ognl/ |
Object-Graph Navigation Language(OGNL; 객체그래프 탐색 언어)는 Java용 오픈소스 표현 언어(EL)입니다.Java 언어에서 지원되는 모든 표현 범위보다 단순한 표현식을 사용하여 속성을 가져오고 설정할 수 있습니다(JavaBeans에 있는 정의된 setProperty 메서드와 getProperty 메서드를 통해).또한 Java 클래스의 메서드를 실행할 수 있습니다.또, 어레이를 간단하게 조작할 수도 있습니다.
이는 표현 언어로 태그립을 사용하는 Java EE 응용 프로그램에서 사용하는 것을 목적으로 합니다.
OGNL은 OGNL Technology의 [1]Luke Blanshard와 Drew Davidson이 만들었다.OGNL 개발은 OpenSymphony에 의해 지속되어 [2]2011년에 종료되었습니다.OGNL은 Apache Commons의 일부로 개발되었습니다.
OGNL 테크놀로지
OGNL은 속성 이름을 사용하여 프론트 엔드 컴포넌트와 백엔드 객체 간의 연관성을 매핑하는 방법으로 시작되었습니다.이러한 어소시에이션이 더 많은 기능을 수집함에 따라 Drew Davidson은 KVCL(Key-Value Coding Language)을 만들었습니다.Luke Blanshard는 ANTLR을 사용하여 KVCL을 재실장하고 OGNL이라는 이름을 사용하기 시작했습니다.이 기술은 Java 컴파일러(JavaCC)를 사용하여 다시 구현되었습니다.
OGNL은 Java 리플렉션 및 인스펙션을 사용하여 런타임 응용 프로그램의 객체 그래프를 처리합니다.이를 통해 프로그램은 컴파일 시간 설정에 의존하는 대신 객체 그래프 상태에 따라 동작을 변경할 수 있습니다.또한 개체 그래프를 변경할 수도 있습니다.
OGNL을 사용한 프로젝트
- WebWork와 그 후계자 Struts2
- 태피스트리(4개 이전)
- 스프링 웹 플로우
- Apache 클릭
- MyBatis - SQL 매퍼 프레임워크
- Thymelaf - Java XML/XHTML/HTML5 템플릿엔진
- FreeMarker - Java 템플릿엔진
OGNL 보안 문제
OGNL은 실행 가능한 코드를 만들거나 변경할 수 있기 때문에 [citation needed]OGNL을 사용하는 모든 프레임워크에 중대한 보안 결함을 가져올 수 있습니다.여러 Apache Struts 2 버전이 OGNL 보안 [3]결함에 취약합니다.2017년 10월 현재 Struts 2의 권장 버전은 2.5.[4]13입니다.Struts 2 버전 2.3.5~2.3.31 및 2.5~2.5.10 등 오래된 리비전에서는 보안 취약성이 문서화되어 리모트 공격자가 임의의 [5]코드를 실행할 수 있기 때문에 사용자는 최신 버전으로 업그레이드해야 합니다.Atlassian Conversence는 OGNL 보안 문제에 반복적으로[6][7] 영향을 받아 임의의 리모트코드를 실행할 수 있게 되어 모든 사용자가 업데이트해야 합니다.
「 」를 참조해 주세요.
외부 링크
레퍼런스
- ^ "ognl.org", OGNL Technology, Inc, archived from the original on 25 October 2008, retrieved 5 November 2013
- ^ "OpenSymphony, RIP (2000 - 2011)". Open Symphony. Archived from the original on 5 September 2013. Retrieved 1 June 2011.
- ^ "Apache Struts : List of security vulnerabilities". cvedetails.com. Retrieved October 2, 2017.
- ^ "Apache Struts Releases". struts.apache.org. Retrieved October 2, 2017.
- ^ Goodin, Dan (March 9, 2017). "Critical vulnerability under "massive" attack imperils high-impact sites [Updated]". Ars Technica. Retrieved October 2, 2017.
- ^ "[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.
- ^ "[CONFSERVER-79000] Unauthenticated remote code execution vulnerability via OGNL template injection (CVE-2022-26134)". jira.atlassian.com. Retrieved 2022-06-03.
