CSS规则泄漏到页面的其余部分

伊森·布劳(Ethan Brouwer)

背景:我有一组网页,客户可以在其中创建自己的电子邮件(通常是事情的提醒)并发送给人们。它使用ckeditor,我允许他们在<style>标记中定义自己的样式规则在另一页上,我显示了他们起草的所有电子邮件。(我基本上只是将他们从数据库中提取的内容输出到页面中),我并不是在问这带来的安全风险。我非常清楚它们是什么以及如何处理它们。那不是问题。主要问题是,如果我有一个名为的类.button,它将按钮变成海军色,并且在CSS中为该类定义了某种样式,使文本变黑,则该文本泄漏并把我的按钮文本变黑。

问题:如何让他们预览他们所写的内容,而又不让其样式潜入我的网页并覆盖我的样式?

我已经尝试过的事情:我已经尝试过iframe,但我无法完全弄清楚是否可以将代码嵌入其中。我也看到了<embed><object>标签,但是我不知道它们是否可以帮助您。

在此先感谢您的帮助!

柴郡

您可以尝试将每个电子邮件html和css包装在其自己的Shadow DOM中:https : //developer.mozilla.org/en-US/docs/Web/Web_Components/Using_shadow_DOM

Shadow DOM通常仅用于此目的,以帮助确定HTML和CSS的范围。像Angular这样的流行框架也为此使用了Shadow DOM。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

页面其余部分的CSS

如何防止 CSS 动画移动我页面的其余部分?

使CSS标签在悬停时弹出,而无需将页面的其余部分向下推

如何在html / css中使导航栏与页面的其余部分没有空间?

如何使导航栏与页面的其余部分重叠?

PHP if语句停止加载HTML页面的其余部分

jsp:include会删除页面的其余部分吗?

如何使html页面的一个区域重定向到另一个url,而页面的其余部分保持不变?

如何使部分可滚动并且与页面的其余部分一样高?

firebase 规则(集合的其余部分)

如何使粘性div漂浮在页面的其余部分上?

使一个非常宽的 div 水平滚动而不影响页面的其余部分

让摩纳哥编辑器填充页面的其余部分(跨浏览器)

使代码镜像块填充 Safari 中页面的其余部分

如何防止引导导航栏与页面的其余部分一起滚动

防止自定义(损坏的)HTML破坏页面的其余部分

固定导航栏在向下滚动时被页面的其余部分覆盖

具有自适应高度的iframe,适合页面的“其余部分”

ListView 到达结束然后停止滚动并开始滚动页面的其余部分 Flutter

为什么MySQLi停止了我页面的其余部分的解析并停止了我的PHP脚本?

如何在不将页面的其余部分向下推的情况下显示模态?

与页面其余部分的重叠列表

可能的Chrome错误:如果页面的其余部分包含大量CSS,则在输入字段中键入内容的速度会非常慢

Flex:用面板填充表面的其余部分

如何在使html页面的其余部分变暗的同时保持悬停区域的背景颜色/不透明度?

如何创建两个部分,一个部分具有全屏图像,另一部分具有页面的其余部分

Bootstrap 4 使网格占据页面其余部分的 100% 高度

CSS在遮罩外显示元素的其余部分

上面 {{post.content}} 的木材/TWIG 部分,下面的其余部分