当前位置: 首页 > 知识库问答 >
问题:

Java 项目中的信任边界冲突缺陷

慕宪
2023-03-14

对于下面提到的代码,我在CheckMarx报告中得到了信任边界违规。

错误描述-方法'getResponse'从元素请求中获取用户输入。此元素的值在没有经过适当清理或验证的情况下流过代码,最终存储在服务器端会话对象中的'parseRequest'方法中。**

代码 -

@Context
HttpHeaders httpHeader;

void parseRequest(SomeRequestType inputRequest) {
    HashMap<String, Data> requestData = inputRequest.getRequestData(httpHeader);
    if (requestData != null) {
        if (Strings.isNullOrEmpty(inputRequest.getId())) {
            Data data = requestData.get("data");
            var dataID = data.getID();
            if ((dataID != null) && Pattern.matches("[0-9]+", dataID)) {
                inputRequest.setId(dataID);
                ThreadContext.put("ID", dataID);
            }
        }
    }
}

我在下面的行中得到checkmarx漏洞,原因是没有经过适当的清理或验证

ThreadContext.put("ID", dataID);

可以请一些人帮助我,如何正确消毒上面的线。

共有1个答案

乐正心水
2023-03-14

如果你确定dataID是一个数字,马上把它转换成integer/long,就像这样:

int dataIDasNumber = Integer.parseInt(dataID);

在这里像int/long一样使用它:

inputRequest.setId(dataIDasNumber);
ThreadContext.put("ID", dataIDasNumber);

那么你不需要这样做:

Pattern.matches...

你违反检查马克思的行为应该会消失。

 类似资料:
  • 问题内容: 在构建具有许多依赖项的Maven项目时,其中一些依赖项依赖于同一库,但使用的版本不同,这会在运行应用程序时导致错误。 例如,如果我添加两个不同的项目依赖项,A和B都依赖于apachecommonshttp客户端,但每个依赖于不同版本,则一旦类加载器加载了A的apachecommons http客户端类,B就会尝试使用它们,因为它们已经由类加载器加载。 但是B的字节码取决于所加载类的不同

  • 我是pygame的新手,我做了一个屏幕边框检测,但它不起作用 并检查它是否接触到边缘 但如果我们使用它就会坏掉/播放器就会卡住 整个代码是

  • 我有一个具有以下依赖项的GWT项目 > Gin 2.1.2依赖于guice 3.0,而owlapi 4.0.2依赖于guice 4.0-beta。 gin在客户端使用,而owlapi在服务器端使用。 我有什么办法才能让这件事成功?我是否可以在保留正常运行的GWT devmode的同时使用依赖关系范围?

  • Postgres 10和11的插入说明: 关于冲突[冲突目标]冲突行动 我有一张桌子: 而我想做的 但是我得到一个错误: ON CONFLICT DO UPDATE需要推理规范或约束名称提示:例如,ON CONFLICT(column_name) 为什么我必须提供一个确定的目标?如何提供主键或其他列集?

  • 我需要你的帮助, 似乎我在尝试在容器div内的textarea周围添加div以及包含容器div底部按钮的div边框时遇到了一些困难。 第一个问题:右侧边框丢失 第二个问题,inner2 div缺少1px纯红。 以下是问题和期望结果的图片: 预期结果是: 这里是超文本标记语言

  • 给定一个Geopandas GeoDataFrame,我想提取GeoDataFrame的总边界,由单元缓冲。 通过,我可以访问整个DataFrame中组合几何的非缓冲边界。我想到的一种方法是取这些边界,将它们转换为Shapely多边形,然后缓冲它。