【问题标题】:How can i explicitly check request content-type is matching with actual content in Spring boot?如何在 Spring Boot 中明确检查请求内容类型是否与实际内容匹配?
【发布时间】:2021-07-10 12:14:12
【问题描述】:

我想验证我的请求内容类型是否与我的请求正文匹配? 我正在尝试实施 OWASP Rest 安全标准。

上面写着:

13.2.5 验证 REST 服务是否明确检查传入的 Content-Type 是否为预期的,例如 application/XML 或 application/JSON。

在下图中,内容类型是 JSON,但请求是 XML。仍然可以正常工作。

我的控制器代码:-

@RestController
public class TestController {

@PostMapping(path="/hello",consumes = "application/json")
public Map<String,String> hello(Master ecm){
    Map<String,String> m=new HashMap<>() ;
    m.put("message", "hello!");
    return m;
   }

}

【问题讨论】:

    标签: spring-boot rest owasp


    【解决方案1】:

    Spring 注释为此提供了一个特定的属性。它被称为消耗。

    这是一个例子

    @PostMapping(consumes = MediaType.SELECT_TYPE_HERE)
    

    具体例子

    @PostMapping(consumes = MediaType.APPLICATION_JSON_VALUE)
    

    【讨论】:

    • 我知道消费和生产,但是如果我在请求中将内容类型作为应用程序/XML 发送并且我的请求正文是 JSON 格式,那么检查我如何实现它?跨度>
    • @tusharwason 从春季开始就已经为您准备好了。它将根据您在consumesproduces 上提供的信息自动提供正确的message body readermessage body writer 来解析请求或响应。如果 message body readermessage body writer 失败了,你就知道有些事情搞砸了
    • 谢谢,@Boug,只是想知道 Sails js 中是否也有相同的功能?
    • 你能再看看这个问题吗?我已经用图像和代码更新了它。
    猜你喜欢
    • 1970-01-01
    • 2018-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-19
    • 2022-12-21
    • 2015-07-14
    • 2019-06-23
    相关资源
    最近更新 更多