我正在考虑使用HTML WYSIWYG编辑器,例如CKEditor,但我很好奇是什么阻止用户提交一些HTML代码,当我尝试输出他们的HTML时会改变页面的布局
以下是两个帖子的示例:
<p><b>This is my post</b></p>
<p>It has some nice HTML that does not break stuff</p>
和
</div>
<div style="height:10000px; width:10000px;">
<p>muhahaha</p>
</div>
正如你所看到的,第一篇文章很简单,我可以展示它,它看起来不会疯狂。但是第二篇文章可能会完全改变我的页面布局(没有经过测试,但你明白了。
<html>
<head>...</head>
<body>
<div class='content'>
<div class='post'>
<p><b>This is my post</b></p>
<p>It has some nice HTML that does not break stuff</p>
</div>
<div class='post'>
</div>
<div style="height:10000px; width:10000px;">
<p>muhahaha</p>
</div>
</div>
</div>
</body>
</html>
我知道我可以使用htmlentities,但这会显示没有粗体的第一篇文章,我不希望这样。
stackoverflow网站必须内置这样的东西,我想知道是否有一种简单的方法可以阻止用户通过WYSIWYG编辑器提交改变布局的HTML?
答案 0 :(得分:0)
CKEditor有一个名为Advanced Content Filter的功能,默认情况下,自动模式通过转换和删除不允许的元素,属性,类和样式来过滤传入的HTML内容。 CKEditor只允许被启用的编辑器功能(按钮,插件)定义为允许的内容。
它也是高度可配置的,因此它可以让您完全控制用户可以和不能提交到您网站的内容。
查看以下资源以了解情况: