安全工具扫描问题,发现依赖默认编码:new String(byte[])
Security tool scan issue, Found reliance on default encoding: new String(byte[])
我收到以下代码的“发现对默认编码的依赖:new String(byte[])”
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)
如您所知,此构造函数并未为 new String() 定义。那么有人可以建议如何解决问题。如果在这里使用 Base64.getMimeDecoder() 有意义,也请添加。
String payloadUTF8 = new String(jsonString.getBytes(),StandardCharsets.UTF_8);
context = JsonPath.parse(payloadUTF8);
为了调用 String
constructor,第一个参数必须是 byte[]
。将 .getBytes()
的结果作为第一个参数传递,然后您可以将 StandardCharsets.UTF_8
设置为第二个参数。
我收到以下代码的“发现对默认编码的依赖:new String(byte[])”
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)
如您所知,此构造函数并未为 new String() 定义。那么有人可以建议如何解决问题。如果在这里使用 Base64.getMimeDecoder() 有意义,也请添加。
String payloadUTF8 = new String(jsonString.getBytes(),StandardCharsets.UTF_8);
context = JsonPath.parse(payloadUTF8);
为了调用 String
constructor,第一个参数必须是 byte[]
。将 .getBytes()
的结果作为第一个参数传递,然后您可以将 StandardCharsets.UTF_8
设置为第二个参数。