问题描述
XStream是一个简单的基于Java库,Java对象序列化到XML,反之亦然(即:可以轻易的将Java对象和xml文档相互转换)。
攻击者可以通过构造反序列的代码,达到目的。
如何避免
(1) 采用白名单策略,只允许白名单上的对象生成,不允许生成未经定义的对象。
(2) 对序列化对象执行完整性检查和加密处理,防止被恶意篡改和创建恶意对象。
(3) 反序列化过程之前执行严格的类型限制。
解决方法
XStream.allowTypeHierarchy
方法为反序列化类 Contact
添加安全权限避免不安全的反序列化。
- XStream xStream = new XStream(new Xpp3Driver(new NoNameCoder())) ;
xStream.allowTypeHierarchy(XXX.class);
Class<?>[] classes = new Class[] {XXX.class};
xStream.allowTypes(classes);
(需要升级为1.4版本以上)
详解查看:https://www.freebuf.com/column/205781.html
来源:freebuf.com 2020-12-22 11:42:27 by: Lotter
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
喜欢就支持一下吧
请登录后发表评论
注册