
ثغرة XSS في angular-ui-notification
جميع الإصدارات في angular-ui-notification معرضة لـ XSS بسبب عدم قيام المكتبة بتنقية المدخلات المقدمة من المستخدم.
لاستخدام هذه المكتبة بأمان، يُوصى بشدة بتنقية/ترميز المعاملات التي تمرر للمكتبة، مثل ما يلي:
private sanitizeHTML(str: string) {
return str.replace(/[^\w. ]/gi, (c) => `&#${c.charCodeAt(0)};`);
}
لنفترض أن المكتبة قد تم استيرادها وتستخدم حالياً في مشروع. قد يبدو استخدام هذه المكتبة كالتالي:
private showNotification(message: string, delay: number, type: NotificationType) {
this.Notification.clearAll();
this.Notification[type]({
message,
delay,
replaceMessage: true
});
}
إذا تم تمرير أي مدخلات من المستخدم مباشرة إلى وسيط message، فإن أي وسم <script> سيكون كافياً لتنفيذ هجوم XSS.
وسم بسيط مثل <script>alert(1)</script> سيكون كافياً.
Xh4H
يبدو أن المشروع لم يعد تتم صيانته، لذلك أوصي بشدة باستخدام بدائل مُدارة.