
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
Похоже, проект больше не поддерживается, поэтому я настоятельно рекомендую использовать поддерживаемые альтернативы.