กลับไปหน้าบทความ

อ่าน 2 นาที

โอจีเอ็นแอล

อาปาเช่คอมมอนส์/ซอฟต์แวร์ฟรีที่ตั้งโปรแกรมด้วย Java/ชวา (แพลตฟอร์มซอฟต์แวร์)/ต้นขั้วหัวข้อภาษาการเขียนโปรแกรม/ภาษาสคริปต์/ซอฟต์แวร์ที่ใช้ใบอนุญาต BSD/ลิงก์ย้อนกลับเทมเพลต Webarchive

ภาษาการนำทางกราฟวัตถุ (OGNL) เป็น ภาษาแสดงนิพจน์ (EL)แบบโอเพนซอร์สสำหรับJavaซึ่งแม้จะใช้นิพจน์ที่เรียบง่ายกว่านิพจน์ทั้งหมดที่ภาษา Java รองรับ...

โอจีเอ็นแอล

โอจีเอ็นแอล
นักพัฒนาเทคโนโลยี OGNL
เวอร์ชันเสถียร
3.0.8 /  24 กันยายน  2556 ( 24 กันยายน 2013 )
เขียนเป็นชวา
ระบบปฏิบัติการข้ามแพลตฟอร์ม
แพลตฟอร์มเครื่องเสมือน Java
พิมพ์ภาษาแสดงออก (EL)
ใบอนุญาตใบอนุญาต BSD
เว็บไซต์http://commons.apache.org/ognl/
ที่เก็บข้อมูล
  • github.com/apache/commons-ognl

ภาษาการนำทางกราฟวัตถุ (OGNL) เป็น ภาษาแสดงนิพจน์ (EL)แบบโอเพนซอร์สสำหรับJavaซึ่งแม้จะใช้นิพจน์ที่เรียบง่ายกว่านิพจน์ทั้งหมดที่ภาษา Java รองรับ แต่ก็ช่วยให้สามารถรับและตั้งค่าคุณสมบัติ (ผ่านเมธอด setProperty และ getProperty ที่กำหนดไว้ในJavaBeans ) และเรียกใช้เมธอดของคลาส Java ได้ นอกจากนี้ยังช่วยให้การจัดการอาร์เรย์ง่ายขึ้นด้วย

มีจุดประสงค์เพื่อใช้ใน แอปพลิเคชัน Java EEโดยใช้taglibsเป็นภาษาสำหรับการแสดงออก

OGNL ถูกสร้างขึ้นโดย Luke Blanshard และ Drew Davidson จากOGNL Technology [ 1 ] การพัฒนา OGNL ได้รับการสานต่อโดยOpenSymphonyซึ่งปิดตัวลงในปี 2011 [ 2 ] ปัจจุบัน OGNL ได้รับการพัฒนาเป็นส่วนหนึ่งของApache Commons

เทคโนโลยี OGNL

OGNL เริ่มต้นจากการเป็นวิธีการสร้างแผนที่ความสัมพันธ์ระหว่างส่วนประกอบฝั่ง front-end และอ็อบเจ็กต์ฝั่ง back-end โดยใช้ชื่อคุณสมบัติ เมื่อความสัมพันธ์เหล่านี้มีคุณสมบัติมากขึ้น Drew Davidson จึงสร้างภาษาการเขียนโค้ดแบบคีย์-ค่า (KVCL) ขึ้นมา จากนั้น Luke Blanshard ได้นำ KVCL มาเขียนใหม่โดยใช้ANTLRและเริ่มใช้ชื่อ OGNL เทคโนโลยีนี้ได้รับการเขียนใหม่โดยใช้ Java Compiler Compiler ( JavaCC ) อีกครั้ง

OGNL ใช้การสะท้อนและการตรวจสอบภายใน ของ Java เพื่อจัดการกับกราฟวัตถุของแอปพลิเคชันในขณะรันไทม์ วิธีนี้ช่วยให้โปรแกรมสามารถเปลี่ยนแปลงพฤติกรรมตามสถานะของกราฟวัตถุแทนที่จะพึ่งพาการตั้งค่าในขณะคอมไพล์ นอกจากนี้ยังอนุญาตให้ทำการเปลี่ยนแปลงกราฟวัตถุได้ด้วย

โครงการที่ใช้ OGNL

  • WebWork และStruts 2 ซึ่งเป็นรุ่นต่อจาก WebWork
  • พรมทอ (4 และรุ่นก่อนหน้า)
  • สปริงเว็บโฟลว์
  • Apache Click
  • MyBatis - เฟรมเวิร์กสำหรับแปลงข้อมูล SQL
  • Thymeleaf - เครื่องมือสร้างเทมเพลต XML/XHTML/HTML5 ที่เขียนด้วยภาษาJava
  • FreeMarker - เครื่องมือสร้างเทมเพลตด้วยภาษา Java

ปัญหาด้านความปลอดภัยของ OGNL

เนื่องจากความสามารถในการสร้างหรือเปลี่ยนแปลงโค้ดที่สามารถเรียกใช้งานได้ OGNL จึงสามารถทำให้เกิดช่องโหว่ด้านความปลอดภัยที่สำคัญในเฟรมเวิร์กใดๆ ที่ใช้เฟรมเวิร์กนี้ได้Apache Struts 2หลายเวอร์ชันมีความเสี่ยงต่อช่องโหว่ด้านความปลอดภัยของ OGNL [ 3 ] ณ เดือนตุลาคม 2560 เวอร์ชันที่แนะนำของ Struts 2 คือ 2.5.13 [ 4 ]ผู้ใช้ควรอัปเกรดเป็นเวอร์ชันล่าสุด เนื่องจากเวอร์ชันเก่ามีช่องโหว่ด้านความปลอดภัยที่ได้รับการบันทึกไว้แล้ว เช่น Struts 2 เวอร์ชัน 2.3.5 ถึง 2.3.31 และ 2.5 ถึง 2.5.10 อนุญาตให้ผู้โจมตีจากระยะไกลสามารถเรียกใช้โค้ดตามอำเภอใจได้ [ 5 ] Atlassian Confluence ได้รับผลกระทบจากปัญหาด้านความปลอดภัยของ OGNL ซ้ำแล้วซ้ำเล่า[ 6 ] [ 7 ]ซึ่งอนุญาตให้เรียกใช้โค้ดจากระยะไกลตามอำเภอใจได้ และกำหนดให้ผู้ใช้ทุกคนต้องอัปเดต

ดูเพิ่มเติม

  • สาขาการบำรุงรักษา OGNL 3.x
  • หน้าแรกของ OGNL 4.x (Apache)
  • ช่องโหว่การแทรกนิพจน์ OGNL CVE-2013-2134 ใน Apache Struts ถูกเก็บถาวรเมื่อวันที่ 9 พฤษภาคม 2021 ที่Wayback Machine
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=OGNL&oldid=1356814350 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ โอจีเอ็นแอล

ภาษาการนำทางกราฟวัตถุ (OGNL) เป็น ภาษาแสดงนิพจน์ (EL)แบบโอเพนซอร์สสำหรับJavaซึ่งแม้จะใช้นิพจน์ที่เรียบง่ายกว่านิพจน์ทั้งหมดที่ภาษา Java รองรับ...

เทคโนโลยี OGNL

OGNL เริ่มต้นจากการเป็นวิธีการสร้างแผนที่ความสัมพันธ์ระหว่างส่วนประกอบฝั่ง front-end และอ็อบเจ็กต์ฝั่ง back-end โดยใช้ชื่อคุณสมบัติ เมื่อความสัมพันธ์เหล่านี้มีคุณสมบัติมากขึ้น Drew Davidson จึงสร้างภาษาการเขียนโค้ดแบบคีย์-ค่า (KVCL) ขึ้นมา จากนั้น Luke...

โครงการที่ใช้ OGNL

WebWork และ Struts 2 ซึ่งเป็นรุ่นต่อจาก WebWork พรมทอ (4 และรุ่นก่อนหน้า) สปริงเว็บโฟลว์ Apache Click MyBatis - เฟรมเวิร์กสำหรับแปลงข้อมูล SQL Thymeleaf - เครื่องมือสร้างเทมเพลต XML/XHTML/HTML5 ที่เขียนด้วยภาษา Java FreeMarker - เครื่องมือสร้างเทมเพลตด้วยภาษา...

ปัญหาด้านความปลอดภัยของ OGNL

เนื่องจากความสามารถในการสร้างหรือเปลี่ยนแปลงโค้ดที่สามารถเรียกใช้งานได้ OGNL จึงสามารถทำให้เกิดช่องโหว่ด้านความปลอดภัยที่สำคัญในเฟรมเวิร์กใดๆ ที่ใช้เฟรมเวิร์กนี้ได้ Apache Struts 2 หลายเวอร์ชันมีความเสี่ยงต่อช่องโหว่ด้านความปลอดภัยของ OGNL [ 3 ] ณ เดือนตุลาคม...