我有component
从服务中获取一些字符串,此service
从json
加载其字符串。
由于攻击者可以更改此json(连接到服务器等),因此我希望在显示之前对字符串进行清理,以避免XSS漏洞。
问题是我收到了一条恼人的log
消息:
警告:清理HTML会剥离一些内容(请参阅http://g.co/ng/security#xss)。
每次我寻找一种方法来删除这条消息时,我发现有人说“绕过消毒剂”,但这实际上不是我想要做的,我需要消毒剂来完成它的工作。
我写了一个在plunkr上运行的简单示例:
@Component({
selector: 'my-app',
template: `
<div [innerHTML]="text">
</div>
`,
})
export class App {
text:string;
constructor(sanitizer:DomSanitizer) {
this.text = sanitizer.sanitize(SecurityContext.HTML,"<script>window.alert('XSS')</script>");
}
}
我正在使用[innerHTML]
绑定,因为我需要将<b>hello</b>
等内容呈现为 hello 。