【发布时间】:2015-04-22 13:12:04
【问题描述】:
我们正在构建一个定制的 JEE 安全层,以确保解决所有可能的 OWASP 问题。这个安全层被构建为需要在控制器(在我们的例子中是 Spring)之前运行的过滤器,以便它们可以在请求实际到达控制器之前执行。这些安全过滤器查看用户输入并执行各种清理。一种这样的卫生措施是 JSON 卫生措施,在其中查找来自客户端的 JSON 数据是否存在任何恶意内容。
目前,Spring 控制器使用@RequestBody 注解将传入的 JSON 数据普及到 POJO 类中。
我有完全相同的question,但是,是否有一种通用的方法可以从请求中检索参数(作为 JSON 数据发送)?
我的目标是在过滤器中有一个 JSON 净化器代码,以便它 拦截并解析所有传入控制器的 JSON 数据。
【问题讨论】:
-
这听起来像是中间件的工作(查看所有传入请求并可以处理或修改它们的代码)。我不明白你想要做什么的细节,所以我无法提出比这更具体的建议。
-
@jfriend00 我在问题中添加了一些背景上下文。希望它提供您正在寻找的信息。我们没有为此目的使用任何中间件或工具,而是构建一个自定义层作为安全层。
-
我们至少需要查看一些代码,了解您如何处理传入的 http 请求。如果您不使用任何框架,则基本上需要实现自己的中间件处理。
-
我正在编写简单的 Java Servlet 过滤器,它在控制器之前被调用。如果我想检查这个控制器内的参数,我只需说 request.getParameter("x") 来获取它的值,检查和清理。但是当 JSON 数据来自客户端时,request.getParameter("X") 给了我 NULL 但这些 JSON 数据是在控制器中使用 @RequestBody 方法在控制器中接收的。我的问题是,在这个 JSON 场景中我应该使用什么来代替 request.getParameter ?
-
这是一个 node.js 问题 (JavaScript) 还是某种 Java 开发环境。使困惑!你的 JSON 被解析了吗?
标签: json spring sanitization input-sanitization