仅转义grails中的特定标记

时间:2011-05-10 17:17:50

标签: html grails formatting xss

在我的应用程序中,用户将能够放置自己的内容。当然,我想保护我的XSS攻击申请。但是使用.encodeAsHTML()可以逃脱一切。我想让用户为他们的文字设置样式,所以我希望一些标签不被转义,例如<b>, <i>, <u>。知道我怎么能这样做吗?或者也许某人已经做过类似的事情?我还想到了BBCode风格的格式 - 有人在grails上做过吗?

2 个答案:

答案 0 :(得分:1)

查看jsoup,它可以让您将代码和属性列入白名单,但也可以刷新您的HTML。

以下是一个例子:

String escapeNonFormattingHTML(String unescaped) {
    def whitelist = Whitelist().simpleText() //allows b, i, u, em, strong
    return new Jsoup().clean(unescaped, whitelist)
} 

答案 1 :(得分:0)

Html cleaner插件可以帮助您根据白名单清除HTML。但其他标签不会被转义,而是完全删除。它基于jsoup。