如何在允许格式化的JavaScript编辑器中处理清理

Mah*_*oni 8 html javascript security editor sanitize

像Medium这样的许多编辑都提供格式化.从我在DOM中看到的,它只是添加HTML.但是,如何在不丢失用户应用的格式的情况下清理此类输入?

例如,点击粗体添加:

<strong class="markup--strong markup--p-strong">text</strong>

但如果用户自己输入,则不想渲染.那有什么不同呢?如果您使用markdown进行样式但也不允许用户输入自己的markdown但只能通过浏览器访问它,那也会有所不同吗?

我能想到的一种方法是,逃避每个HTML特殊字符,但这看起来很奇怪.据我所知,只有在输出内容时才对内容进行消毒

小智 3

正如 Vipin 所说,您应该使用服务器端消毒程序,因为客户端验证很容易被篡改。OWASP(开放 Web 应用程序安全项目)有一些您可以使用的指南和清理程序,例如 java-html-sanitizer。

有关该概念的一般简介,请阅读https://www.owasp.org/index.php/Data_Validation的“清理”部分。