我有一个类型为contentEditable
的浏览器编辑器,用户可以在其中复制/粘贴或选择要放入的html片段。
这些片段可以是任何类型的HTML,因此我们必须清理内容,使其不包含某些安全问题标记(如<script>
等...)。
我知道一些允许一些白名单策略的清理程序库(比如JVM上的JSoup),但这些规则通常非常简单,比如说哪些标记/属性是白名单而没有别的。
我们需要更高级的规则,例如:
到目前为止,我们已经完成了一些代码来处理这个问题,但我发现这非常hacky。是否有一个已知的库,标准或算法来处理这些事情?我不是XML解析/转换专家,我可以使用的任何东西,如XSLT,SAX或其他可以帮助我解决问题的东西。
我正在浏览器(JS)和JVM(Java或Scala)上寻找解决方案。关于如何实现这个的任何想法?