背景:我有一组网页,客户可以在其中创建自己的电子邮件(通常是事情的提醒)并发送给人们。它使用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] 删除。
我来说两句