我有一个用例,我需要存储iframe和可能在数据库中动态生成的javascript。我正在使用HTMLPurifier来清理输入。
HTMLPurifier中是否可以忽略指定元素中的所有内容(HTML / CSS / JS),以便清除所有内容,但保留指定元素内的所有内容?
答案 0 :(得分:0)
来自 Wikipedia :
XHTML 文档中的CDATA 部分可能会以不同方式进行解析 Web浏览器,如果他们将文档呈现为HTML,则自HTML 解析器不识别 CDATA 开始和结束标记,也不识别它们 识别HTML实体引用,例如& lt;在< script>内标签。 这可能会导致Web浏览器中的呈现问题,并可能导致 用于显示数据的跨站点脚本漏洞 不可信的来源,因为这两种解析器会不同意 CDATA 部分结束的地方。
因为能够使用小于号(<)和 网页脚本中的&符号(&),以及较小范围的样式, 无需记住逃避它们,通常使用 CDATA 内联文本< script>周围的标记和< style>中的元素 XHTML 文件。但这样文档也可以通过HTML进行解析 解析器,无法识别 CDATA 标记, CDATA 标记 通常会被评论出来
以下是JavaScript示例:
<script type="text/javascript">
//<![CDATA[
document.write("<");
//]]>
</script>
以下是CSS示例:
<style type="text/css">
/*<![CDATA[*/
body { background-image: url("marble.png?width=300&height=300") }
/*]]>*/
</style>