我们有一个grails 3.1.10 restful服务,可在http帖子中接收json数据。此数据可能包含不需要的html / javascript。
使用encodeAsHTML和xss-sanitizer插件XssSanitizerUtil.stripXSS方法,我可以看到如何对单个字符串进行清理,但是如何通过过滤器或其他方法将其推到更高的范围,以便在控制器中使用request.JSON时它已经被消毒了吗?
还是已经有另一种更简单的方法来完成此任务?
答案 0 :(得分:0)
我创建了一个拦截器以应用于适当的控制器。在其中,我制作了JSON parse(HttpServletRequest request)方法的副本。在解析输入流的方法的末尾,我插入了使用xss-sanitizer的Sanitizer类:
def body = IOUtils.toString(pushbackInputStream, encoding)
def sanitized = Sanitizer.sanitize(body)
json = JSON.parse(sanitized);