我得到强化问题动态代码评估:不安全反序列化在下面的行:
@RequestMapping(value="/v2/doc", method=RequestMethod.POST)
public JsonDocVerifyResponse verify(@RequestBody JsonDocVerifyRequestV3 request)
JsonDocVerifyRequestV3 temp = (JsonDocVerifyRequestV3)SerializationUtils.clone(request);
不安全反序列化的解决方案如下https://www.ibm.com/developerworks/library/se-lookahead/ 但正如您在我的代码中看到的,我没有使用bytearrayoutputstream来反序列化对象。
这是强化的假阳性吗?如果没有,我怎么用
org.apache.commons.io.serialization.ValidatingObjectInputStream
验证类?任何代码示例都会有很大帮助!
以下是片段:
@RequestMapping(value="/v2/doc", method=RequestMethod.POST)
public JsonDocVerifyResponse verify(@RequestBody JsonDocVerifyRequestV3 request) {
debugJsonRequest(request, DOC_TYPE.khIdBack);
JsonDocVerifyResponse response = new JsonDocVerifyResponse();
return response;
}
public void debugJsonRequest(JsonDocVerifyRequestV3 request, DOC_TYPE docType) {
try {
JsonDocVerifyRequestV3 temp(JsonDocVerifyRequestV3) SerializationUtils.clone(request);
LOGGER.debug("{}|{}", docType, CommonUtil.debugJsonObject(temp));
} catch(Exception e) {
LOGGER.error("Error in debug json object", e);
}
}
1条答案
按热度按时间bvk5enib1#
你可以用
accept
以及reject
方法更安全的反序列化操作。例子: