如何保护用户提交的HTML标记?

如何保护用户提交的HTML标记?,html,security,Html,Security,在开始之前,我想说我在这里读过类似的问题,但我不认为它真的回答了这个问题:和 我认为这些都很好地突出了这些问题,但我本质上是在征求在这些情况下的最佳做法的建议 我已经做了一段时间的编程,现在我想让网站管理员提交HTML标记,以便在他们自己的网站上显示他们想要的内容 在数据库中保护此内容很好,但现在我想在站点上安全地显示它 尽管如此,此功能仅对网站管理员可用,我仍然希望防止恶意脚本注入,并尝试防止他们使用糟糕的HTML破坏页面 我不能像上面的线程所指出的那样安全地防范脚本注入,这是事实吗 我的想法

在开始之前,我想说我在这里读过类似的问题,但我不认为它真的回答了这个问题:和

我认为这些都很好地突出了这些问题,但我本质上是在征求在这些情况下的最佳做法的建议

我已经做了一段时间的编程,现在我想让网站管理员提交HTML标记,以便在他们自己的网站上显示他们想要的内容

在数据库中保护此内容很好,但现在我想在站点上安全地显示它

尽管如此,此功能仅对网站管理员可用,我仍然希望防止恶意脚本注入,并尝试防止他们使用糟糕的HTML破坏页面

我不能像上面的线程所指出的那样安全地防范脚本注入,这是事实吗


我的想法是,如果他们破坏了网站,这取决于他们,还是在他们更新内容时我可以使用某种标记验证器?

如果你允许提交纯HTML,你是对的-没有办法阻止所有可能的注入。即使您在所有可能的组合中禁用了
标记(有很多),也有其他方法,如
onfocus
onmouseover
事件,可用于运行恶意代码

你觉得怎么样


这是一种安全的提交html的方式,并且有适用于大多数流行语言的库。

我建议HTMLPurifier,它肯定是最好的解决方案。谷歌吧

你在用什么语言编码?你在说什么可能的脚本注入?您想允许html但禁止javascript吗?你能举个例子吗?你可以把某些html标签列为白名单,这取决于他们上传的内容。例如只允许
我相信TinyMCE内置了这个功能…但这只是客户端…您仍然应该检查并清理服务器端