无法绕过 angular 清理安全
Unable to bypass angular sanitize security
我有一个所见即所得的编辑器(angular-editor):
<angular-editor [(ngModel)]="code" name="code"></angular-editor>
编辑器下方我正在尝试使用 ngx-highlightjs:
<pre>
<code [highlight]="code" [lineNumbers]="true"></code>
</pre>
因此,当我在编辑器中输入类似 <p>test</p>
的内容时,我希望代码 (ngModel) 为 <p>test</p>
而不是 <p>test</p>
,以便它在 <code></code>
中突出显示.
我试过使用管道:
transform(html: string): SafeHtml {
return this.sr.bypassSecurityTrustHtml(html);
}
它不起作用,无论如何值可以是 HTML、JS、任何语言,也可能是多种语言,所以我不能同时绕过 HTML 和 JS(我猜是因为有信任HTML 和 trustScript 方法)。
那么,code
怎么可能是 <p>test</p>
(答案不应该只涵盖 HTML,而是任何语言,<script>...</script>
)而不是 <p>test</p>
?
我想我不能使用 DomSanitizer class,因为它涵盖 HTML 或脚本,而不是两者。
注意:我什至不关心安全性,只有我会使用该应用程序。
我必须格式化要突出显示的代码。
我有一个所见即所得的编辑器(angular-editor):
<angular-editor [(ngModel)]="code" name="code"></angular-editor>
编辑器下方我正在尝试使用 ngx-highlightjs:
<pre>
<code [highlight]="code" [lineNumbers]="true"></code>
</pre>
因此,当我在编辑器中输入类似 <p>test</p>
的内容时,我希望代码 (ngModel) 为 <p>test</p>
而不是 <p>test</p>
,以便它在 <code></code>
中突出显示.
我试过使用管道:
transform(html: string): SafeHtml {
return this.sr.bypassSecurityTrustHtml(html);
}
它不起作用,无论如何值可以是 HTML、JS、任何语言,也可能是多种语言,所以我不能同时绕过 HTML 和 JS(我猜是因为有信任HTML 和 trustScript 方法)。
那么,code
怎么可能是 <p>test</p>
(答案不应该只涵盖 HTML,而是任何语言,<script>...</script>
)而不是 <p>test</p>
?
我想我不能使用 DomSanitizer class,因为它涵盖 HTML 或脚本,而不是两者。
注意:我什至不关心安全性,只有我会使用该应用程序。
我必须格式化要突出显示的代码。