gpt4 book ai didi

javascript - 使用 ngSanitize 允许某些样式属性

转载 作者:可可西里 更新时间:2023-11-01 01:16:47 26 4
gpt4 key购买 nike

我正在使用 ngSanitize在 AngularJS 应用程序中删除不需要的或危险的部分。但是,内容是使用 HTML Richtext 编辑器生成的,并且包含一些样式信息,这些信息会被删除(例如文本颜色)。

我知道删除内联 CSS 样式很有用,但我更喜欢具有不会被删除的 CSS 属性的白名单。有没有办法在不授予所有 CSS 属性的情况下实现这一点?

最佳答案

阅读 ngSanitize 的文档,它看起来好像使用两个白名单来确定要阻止的数据(described here, in $compileProvider)。

这两个白名单是aHrefSanitizationWhitelist([regexp])imgSrcSanitizationWhitelist([regexp])。但是,看起来这两个只处理链接的 URL 以防止 XSS 攻击。

您可以使用 sce.trustAsHtml()(或者,可能,data-bind-html-unsafe 如果那仍然是一个问题,但我认为这已被弃用)但是那不是你想要的;这会让您接触到所有 HTML,无论安全还是不安全。

查看 documentation for $sce 可能是值得的.到目前为止,有一个转义 CSS 的选项,但我不确定它是否会转义 HTML 标记中的内联 CSS。到目前为止,我看不到为 parseAs 方法提供白名单的选项。

编辑:

查看$sanitize source code , 它看起来好像设置为允许样式 tags 中的内容,但不允许样式 attributes 。除非您更改源代码,否则样式属性将被 sanitize 删除。但是,类不会被剥离,因此您可能有一个解决方法。 (事实上​​,通过允许类而不是内联样式,您可以限制评论部分中的样式使用。)

看来,除非有人已经拥有,否则唯一的选择就是自己动手。

关于javascript - 使用 ngSanitize 允许某些样式属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25845061/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com