ترجمة آلية لم تُراجَع بعد. النص الإنجليزي هو المرجع في حال الاختلاف.
الملخص
يوجد ترميز أو هروب غير سليم للمخرجات في Apache Wicket. يقوم org.apache.wicket.core.util.string.JavaScriptUtils#escapeQuotes() باستبدال كل فاصلة عليا مفردة في إدخاله بشرطة مائلة عكسية تليها فاصلة عليا مفردة، وكل علامة اقتباس مزدوجة بشرطة مائلة عكسية تليها علامة اقتباس مزدوجة، بحيث يمكن وضع القيمة داخل نص حرفي لسلسلة JavaScript. وهي لا تقوم بالهروب من الشرطة المائلة العكسية، وهي الحرف الذي يجب الهروب منه، والهروب منه أولاً، لكي يثبت باقي عمليات الهروب تلك. وبالتالي، فإن القيمة التي تحمل بالفعل شرطة مائلة عكسية مباشرة قبل علامة الاقتباس ينتهي بها المطاف بشرطتين مائلتين عكسيتين أمام علامة الاقتباس تلك: الأولى تهرب الثانية، وتترك علامة الاقتباس نفسها دون هروب، وتغلق النص الحرفي. أياً ما تحمله القيمة بعد تلك النقطة لم يعد نصاً بل شيفرة JavaScript، ويتم تشغيلها في مصدر التطبيق وفي جلسة المستخدم الذي يشاهد الصفحة. هذه الطريقة عامة وليست مهملة، وتوضح وثائقها أن نتيجتها يمكن أن تكون جزءاً من استدعاء JavaScript مثل تنبيه alert؛ والقيود الوحيدة التي تلاحظها تتعلق بقيم JSON، والتي تحتاج إلى نوع هروب مختلف. يتأثر التطبيق أينما قام باستدعاء الطريقة بنفسه ووضع النتيجة داخل نص حرفي لسلسلة JavaScript، من تعليمه البرمجي الخاص أو من مكون خاص به أو من طرف ثالث، وتكون القيمة التي يهرب منها حاملة لبيانات يمكن للمهاجم التأثير عليها. لا يوجد شرط إضافي، ولا يلزم مشاركة أي مكون من مكونات Wicket: التطبيق يستخدم الطريقة لما تقدمه وثائقها، والطريقة لا توفر ذلك. يقوم مكونان يتم شحنهما مع Wicket Extensions بتمرير قيمة عبر الطريقة. يكتب org.apache.wicket.extensions.ajax.markup.html.AjaxEditableLabel رسالة تعليقات الأخطاء الأولى للمحرر في نص حرفي لسلسلة JavaScript محاطة بعلامتي اقتباس مفردة في استجابة Ajax، لذا يتأثر التطبيق من خلال هذا المكون عندما تحمل رسالة الخطأ المعروضة لتعديل فاشل بيانات يمكن للمهاجم التأثير عليها، سواء كانت القيمة المرسلة نفسها أو متغير آخر يعينه التطبيق على...