muf*_*fel 17 javascript css angularjs
我ngSanitize在AngularJS应用程序中使用以删除不需要的或危险的部分.但是,内容是使用HTML Richtext编辑器生成的,并包含一些样式信息,这些信息将被删除(例如文本颜色).
我知道删除内联CSS样式很有用,但我更喜欢带有CSS属性但不会被删除的白名单.有没有办法在不授予所有CSS属性的情况下实现这一目标?
jed*_*ung 14
阅读ngSanitize的文档,看起来它使用两个白名单来确定要阻止的数据(在此处描述$compileProvider).
这两个白名单是aHrefSanitizationWhitelist([regexp])和imgSrcSanitizationWhitelist([regexp]).但是,看起来这两个只处理链接的URL以防止XSS攻击.
你可以使用sce.trustAsHtml()(或者,data-bind-html-unsafe如果这仍然是一件事,但我认为已经弃用了),但这并不是你想要的; 这将打开你所有的HTML,安全或不安全.
查看文档$sce可能是值得的.到目前为止看,它有一个转义CSS的选项,但我不确定它是否会在HTML标记中转义内联CSS.到目前为止,我看不到为该parseAs方法提供白名单的选项.
编辑:
查看$sanitize 源代码,看起来它设置为允许样式标记中的东西,但不允许样式属性.除非您更改源代码,否则样式属性将被清理删除.但是,类不会被剥离,因此您可能会在那里找到解决方法.(事实上,通过允许类而不是内联样式,您可以在注释部分中限制样式用法.)
除非有人已经拥有,否则唯一的另一种选择就是滚动自己.
| 归档时间: |
|
| 查看次数: |
5986 次 |
| 最近记录: |