ترجمة آلية لم تُراجَع بعد. النص الإنجليزي هو المرجع في حال الاختلاف.
الملخص
يوجد تحييد غير سليم للإدخال أثناء توليد صفحات الويب في Apache Wicket. يقوم org.apache.wicket.extensions.markup.html.basic.SmartLinkLabel و org.apache.wicket.extensions.markup.html.basic.SmartLinkMultiLineLabel بعرض قيمة نصية وتحويل أي عنوان URL يجدانه فيها إلى ارتباط تشعبي. يقوم كلاهما بعمل هروب لقيمة النموذج ثم تسليم النص الذي تم الهروب منه إلى org.apache.wicket.extensions.markup.html.basic.DefaultLinkParser، والذي يبحث فيه عن أي شيء بالهيئة scheme://rest ويقوم بلف كل مطابقة في رابط تشعبي تكون سمة href الخاصة به هي النص المطابق، منسوخة كما هي. يقبل النمط أي مخطط، وليس هناك قائمة بالمخططات المسموحة في أي مكان على المسار. وبالتالي، فإن القيمة النصية التي تسمي مخططاً ينفذ شيفرة تصبح رابطاً ينفذها، في مصدر التطبيق وفي جلسة القارئ نفسه، عندما ينقر القارئ على الرابط. عرض الصفحة ليس كافياً بمفرده؛ بل يجب تنشيط الرابط. لا يمنع الهروب حدوث ذلك وليس هو المشكلة: فالأحرف التي يحتاجها الحمولة كلها صالحة في عنوان URL وهي تلك التي يتركها org.apache.wicket.util.string.Strings#escapeMarkup() كما هي، وتنتهي القيمة في عنوان URL بدلاً من نص العنصر، وهو سياق لا يجعل بيانات النموذج بعد الهروب آمنة. يتأثر التطبيق عندما يعرض نصاً تلقاه عبر أي من هذين المكونين. هذا هو الغرض منهما: فهي موجودة لربط عناوين البريد الإلكتروني وعناوين URL الخاصة بالويب الموجودة في البيانات التي يعرضها التطبيق، لذا فإن الإدخال غير الموثوق به هو الغرض من الميزة وليس سوء استخدام لها، ولا يشتمل على أي تكوين غير عادي. لا يستخدم أي مكون آخر محلل التحليل هذا، والتطبيق الذي لا يستخدم SmartLinkLabel ولا SmartLinkMultiLineLabel لا يتأثر. على الإصدارين 9.x و 10.x، تسمح سياسة أمان المحتوى Content-Security-Policy التي يرسلها Wicket بشكل افتراضي بالشيفرات فقط من مصدر يحمل علامة عشوائية لكل استجابة nonce، وعنوان URL الذي ينفذ مخططه شيفرة لا يمكنه حمل هذه العلامة، لذا فإن هذه السياسة الافتراضية تمنع تشغيل الشيفرة. هذه سمة من سمات السياسة الافتراضية...