xstream security framework of xstream not initialized xstream is probably vulnerable 问题解决办法

最近在使用 XStream 1.4.10 版本的时候遇到了一个安全问题:“xstream security framework of xstream not initialized xstream is probably vulnerable”。大致的意思是说,XStream 的安全框架没被初始化,这是一段红色的提示,实际使用过程中也没有大的问题。但是作为开发者来说,一个红色的提示太耀眼了,可能还是强迫症在作怪,所以我一直想把这个红色的提示给去掉,就查了谷歌。本文给大家分享一下解决过程。

首先,根据 stackoverflow 的 Security framework of XStream not initialized, XStream is probably vulnerable 这个问题的提示,我做出了下面的调整:

XStream.setupDefaultSecurity(xs);

但是在使用过程中它又报出了“com.thoughtworks.xstream.security.ForbiddenClassException”问题。所以这种解决办法不行。于是我根据上面的提示,又添加了下面的代码:

xs.addPermission(AnyTypePermission.ANY); 
xs.addPermission(NoTypePermission.NONE);

运行后,上面的问题依然存在。所以我继续做调整:

Class<?>[] classes = new Class[] { TestList.class, Item.class, ... };
XStream xstream = new XStream();
XStream.setupDefaultSecurity(xstream);
xstream.allowTypes(classes);

这个配置同样的报“com.thoughtworks.xstream.security.ForbiddenClassException”。于是,有人建议我把版本升级到 1.5.x,最终解决了。

但是做为一个开发者,我不想通过升级来解决。我想一定又其他的解决办法。发现添加下面的代码,最终得意解决:

XStream.setupDefaultSecurity(this); // to be removed after 1.5
xstream.allowTypesByWildcard(new String[] {
    "com.xttblog.package.**"
});

大概在 3 年之前我用的 Xstream 低版本的还没有这个问题,可能只是 1.4.x 版本新加的安全验证功能吧。关于“com.thoughtworks.xstream.security.ForbiddenClassException”请查看我的另一篇文章《com.thoughtworks.xstream.security.ForbiddenClassException 问题解决办法》。

参考资料

  • Security framework of XStream not initialized, XStream is probably vulnerable

xstream security framework of xstream not initialized xstream is probably vulnerable 问题解决办法

: » xstream security framework of xstream not initialized xstream is probably vulnerable 问题解决办法

原创文章,作者:254126420,如若转载,请注明出处:https://blog.ytso.com/251837.html

(0)
上一篇 2022年5月3日
下一篇 2022年5月3日

相关推荐

发表回复

登录后才能评论