
angular-ui-notification의 XSS
angular-ui-notification의 모든 버전은 라이브러리가 사용자가 제공한 입력을 적절히 살균(sanitize)하지 않아 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
이 프로젝트는 더 이상 유지 관리되지 않는 것으로 보이므로, 유지 관리되는 대안을 사용하는 것을 적극 권장합니다.