OGNL

لغة التنقل بين الكائنات والرسوم البيانية (OGNL) هي لغة تعبير مفتوحة المصدر للغة جافا ، والتي، على الرغم من استخدامها لتعبيرات أبسط من النطاق الكامل لتلك التي تدعمها لغة جافا، تسمح بالحصول على الخصائص وتعيينها (من خلال دوال setProperty و getProperty المُعرّفة، الموجودة في JavaBeans )، وتنفيذ دوال فئات جافا. كما أنها تسمح بمعالجة المصفوفات بشكل أبسط.

يهدف إلى استخدامه في تطبيقات Java EE مع مكتبات العلامات كلغة تعبير.

تم إنشاء OGNL بواسطة لوك بلانشارد ودرو ديفيدسون من شركة OGNL Technology . [ 1 ] استمر تطوير OGNL بواسطة OpenSymphony ، التي أغلقت في عام 2011. [ 2 ] يتم تطوير OGNL الآن كجزء من Apache Commons .

تكنولوجيا OGNL

بدأت OGNL كوسيلة لربط مكونات الواجهة الأمامية بكائنات الواجهة الخلفية باستخدام أسماء الخصائص. ومع ازدياد ميزات هذه الروابط، ابتكر درو ديفيدسون لغة ترميز المفتاح والقيمة (KVCL). ثم أعاد لوك بلانشارد برمجة KVCL باستخدام ANTLR وبدأ استخدام اسم OGNL. وأُعيدت برمجة هذه التقنية لاحقًا باستخدام مُترجم جافا ( JavaCC ).

تستخدم مكتبة OGNL تقنيات الانعكاس والاستبطان في لغة جافا لمعالجة مخطط الكائنات لتطبيق وقت التشغيل. يتيح ذلك للبرنامج تغيير سلوكه بناءً على حالة مخطط الكائنات بدلاً من الاعتماد على إعدادات وقت الترجمة. كما يسمح بإجراء تغييرات على مخطط الكائنات.

مشاريع تستخدم لغة OGNL

مشاكل أمنية في مكتب الاتصالات الحكومية

بسبب قدرة OGNL على إنشاء أو تعديل التعليمات البرمجية القابلة للتنفيذ، فإنه قادر على إدخال ثغرات أمنية خطيرة في أي إطار عمل يستخدمه. وقد كانت العديد من إصدارات Apache Struts 2 عرضةً لثغرات أمنية في OGNL. [ 3 ] اعتبارًا من أكتوبر 2017، كان الإصدار الموصى به من Struts 2 هو 2.5.13. [ 4 ] يُنصح المستخدمون بالترقية إلى أحدث إصدار، حيث تم توثيق ثغرات أمنية في الإصدارات القديمة - على سبيل المثال، تسمح إصدارات Struts 2 من 2.3.5 إلى 2.3.31، ومن 2.5 إلى 2.5.10، للمهاجمين عن بُعد بتنفيذ تعليمات برمجية عشوائية . [ 5 ] وقد تأثر Atlassian Confluence مرارًا وتكرارًا [ 6 ] [ 7 ] بمشاكل أمنية في OGNL سمحت بتنفيذ تعليمات برمجية عن بُعد عشوائية، مما استلزم من جميع المستخدمين التحديث.

انظر أيضاً

مراجع

  1. "ognl.org" ، شركة OGNL Technology، مؤرشفة من الأصل في 25 أكتوبر 2008 ، تم استرجاعها في 5 نوفمبر 2013
  2. "OpenSymphony, RIP (2000 - 2011)" . Open Symphony . مؤرشف من الأصل في 5 سبتمبر 2013. تم الاطلاع عليه في 1 يونيو 2011 .
  3. "أباتشي سترتس : قائمة الثغرات الأمنية" . cvedetails.com . تم الاطلاع عليه في 2 أكتوبر 2017 . 
  4. "إصدارات أباتشي سترتس" . struts.apache.org . تم الاطلاع عليه في 2 أكتوبر 2017 .
  5. غودين، دان (9 مارس 2017). "ثغرة أمنية خطيرة تحت هجوم "واسع النطاق" تُعرّض مواقع ذات تأثير كبير للخطر [ مُحدّث ] " . آرس تكنيكا . تم الاطلاع عليه في 2 أكتوبر 2017 .
  6. " [ CONFSERVER-67940 ] ثغرة حقن OGNL في Confluence Server Webwork - CVE-2021-26084 - إنشاء وتتبع طلبات الميزات لمنتجات Atlassian" . jira.atlassian.com . تاريخ الاسترجاع: 18 أكتوبر 2021 .
  7. " [ CONFSERVER-79000 ] ثغرة أمنية تسمح بتنفيذ تعليمات برمجية عن بُعد دون مصادقة عبر حقن قالب OGNL (CVE-2022-26134)" . jira.atlassian.com . تاريخ الاسترجاع: 2022-06-03 .