有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java安全工具扫描问题,发现依赖默认编码:新字符串(字节[])

我得到了下面代码段的“发现依赖默认编码:新字符串(字节[])”

InitAuth (Auth auth) {
        String jsonString =String(Base64.getDecoder().decode(token.split(".")[1]));
        context = JsonPath.parse(jsonString);
}

我已经找到了建议使用这种格式的字符串构造函数的解决方案

new String(bytes, StandardCharsets.UTF_8)

但问题是,在我的代码中,如果我使用第二个参数,它将变成这个签名

new String(string, string)

正如您所知,此构造函数不是为新字符串()定义的。所以,有人可以建议如何解决这个问题。如果使用Base64,也请添加。getMimeDecoder()在这里有意义


共 (1) 个答案

  1. # 1 楼答案

    String payloadUTF8 = new String(jsonString.getBytes(),StandardCharsets.UTF_8);
    context = JsonPath.parse(payloadUTF8);
    

    为了调用Stringconstructor,第一个参数必须是byte[]。将.getBytes()的结果作为第一个参数传递,然后可以将StandardCharsets.UTF_8设置为第二个参数

    enter image description here