
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
このプロジェクトはもはやメンテナンスされていないようです。したがって、メンテナンスされている代替ライブラリの使用を強く推奨します。