尝试使用HttpHeaders类设置Cookie时,出现Header Manipulation错误强化

时间:2019-07-12 02:24:23

标签: java spring-boot http resttemplate fortify

在已经编写的应用程序中,有一个方法getHeaders(String cookie)实例化一个新的HttpHeader对象,并将内容类型和cookie设置到标题中。代码如下:

private HttpHeaders getHeaders(String cartIdCookies) {
        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.APPLICATION_JSON);
        headers.setAccept(Arrays.asList(MediaType.APPLICATION_JSON));
        headers.add(HttpHeaders.COOKIE, cartIdCookies);
        headers.add(HttpHeaders.HOST, "www.karan.com");
        return headers;
    }

此方法用于生成requestEntity,然后在restTemplate exchange()中使用以获得httpresponse。代码如下:

    HttpHeaders headers = getHeaders(postCookies);

    HttpEntity<T> requestEntity = new HttpEntity<>(requestModel, headers);

    response = restTemplate.exchange(url, method, requestEntity, JsonNode.class);

Fortify扫描显示了一个问题,指出在此行上的标头操作

headers.add(HttpHeaders.COOKIE, cartIdCookies);

如果我对此行发表评论并运行,则不会引发任何问题。但是标头中需要该行,因为它们在cartIdCookies中添加了很多信息,并被添加为cookie。

设防错误为:

  

GenericRestTemplate.java中的getHeaders()方法在第71行的HTTP响应标头中包含未经验证的数据。这可以发起攻击,例如缓存中毒,跨站点脚本,跨用户污损,页面劫持,cookie操纵或打开重定向。

我正在寻找解决此错误的方法。我在添加cookie语句的上方添加了虚拟验证语句,以查看它是否不会引发该错误。但它仍在显示。我在网上搜索,查看是否有任何方法可以在添加Cookie之前对其进行清理。但是我什么也没找到。

0 个答案:

没有答案