
angular-ui-notification में XSS
angular-ui-notification के सभी संस्करण XSS के प्रति संवेदनशील हैं, क्योंकि लाइब्रेरी उपयोगकर्ता द्वारा प्रदान किए गए इनपुट को स्वच्छ (sanitize) नहीं करती है।
इस लाइब्रेरी का सुरक्षित रूप से उपयोग करने के लिए, इस लाइब्रेरी में पारित पैरामीटर्स को स्वच्छ/एनकोड करना अत्यधिक अनुशंसित है, जैसे कि निम्नलिखित:
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
यह प्रोजेक्ट अब रखरखाव (maintain) नहीं किया जा रहा है, इसलिए मैं रखरखाव योग्य विकल्पों का उपयोग करने की अत्यधिक अनुशंसा करता हूँ।