【发布时间】:2020-04-09 00:28:20
【问题描述】:
这是一个简单的组件示例
export class AppComponent {
htmlSnippet: string;
constructor(private sanitizer: DomSanitizer) {
this.htmlSnippet = this.sanitizer.sanitize(
SecurityContext.HTML,
`<p>snippet works!</p><script>alert("ddd");</script>`
);
}
}
和模板
<p>app works!</p>
<div [innerHTML]="htmlSnippet"></div>
所有内容都被渲染。如果有的话,CSS 也能正常工作。
有没有办法执行该警报?
【问题讨论】:
-
您为什么要首先执行该警报? (无论如何,您可以使用
bypassSecurityTrustHtml方法绕过对 HTML 的清理:angular.io/api/platform-browser/…) -
我认为像这样在模板中添加脚本标签是行不通的,你只有一个选择是创建一个脚本标签并附加到模板中检查这个问题github.com/angular/angular/issues/4903
标签: angular xss html-sanitizing