【发布时间】:2014-10-29 14:03:38
【问题描述】:
我有两个不同的元素,一个是内容可编辑的 DIV 作为指令,您可以在其中输入一些 HTML,例如 img 标签,它会在按键时自动呈现。
其次,我有一个绑定到 ng-model 的 textarea,我还希望用户能够键入 HTML,主要是 img 标签,因此它会自动呈现,但是,如果用户键入,我无法确定这是否可能标记,然后按原样保存。
在 textarea 上实现我想要的最佳解决方案是什么?我是否必须创建一个directie,或者是否有更简单的解决方案可以利用它绑定的 ng-model 变量。
最后一个问题,我是否需要担心任何安全隐患,以便安全地处理输入? IE。我不希望人们将脚本标签放在那里,只是 img 标签、链接,也许还有一些格式化 HTML。我在渲染之前使用 $sanitize 服务来执行 $sanitize(htmlContent) 的指令。
【问题讨论】:
-
似乎很难转义除少数 HTML 之外的所有 HTML ...
-
无论如何至少是脚本标签,我认为 $sanitize 显然应该这样做,只允许 html 和链接,但首先可以使用 ng-model 来渲染 HTML它使用的两个绑定?
标签: javascript angularjs sanitization ngsanitize