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