当前位置:  开发笔记 > 前端 > 正文

JSF的服务器端HTML清理程序/清理

如何解决《JSF的服务器端HTML清理程序/清理》经验,为你挑选了1个好方法。

是否有任何JSF实用工具包或PrimeFaces/OmniFaces等库中可用的HTML清理程序或清理方法?

我需要通过p:编辑器清理用户的HTML输入,并使用escape="true"stackexchange样式显示安全的HTML输出.在显示HTML之前,我正在考虑将已清理的输入数据存储到数据库中,以便它可以安全使用,escape="true"并且XSS不是危险的.



1> BalusC..:

为了实现这一点,您基本上需要一个独立的HTML解析器.HTML解析相当复杂,其任务和责任超出了JSF,PrimeFaces和OmniFaces的范围.你应该只抓住许多现有的HTML解析库中的一个.

一个例子是Jsoup,它甚至还有一个单独的方法,用于针对以下内容清理 HTML的特定目的Whitelist:Jsoup#clean().例如,如果要允许一些没有图像的基本HTML,请使用Whitelist.basic():

String sanitizedHtml = Jsoup.clean(rawHtml, Whitelist.basic());

一种完全不同的替代方法是使用特定的文本格式化语法,例如Markdown(此处也使用).基本上所有这些解析器都会清理HTML下的内容.一个例子是Pegdown.也许这就是你说"堆栈交换风格"时的实际意思.

至于在DB节省,你最好保存在2分独立的文本列生和解析的形式.编辑期间应重新显示原始表单.编辑原始表单时,应在后台更新已解析的表单.在显示期间,显然只显示解析后的表单escape="false".

也可以看看:

Markdown或HTML

推荐阅读
低调pasta_730
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有