Security framework of XStream not initialized, XStream is probably vulnerable
使用XStream(1.4.10)时,我始终收到红色的控制台错误

我尝试了以下方法:
XStream.setupDefaultSecurity(xs);

xs.addPermission(AnyTypePermission.ANY);xs.addPermission(NoTypePermission.NONE);
没有一个能摆脱它。

我不需要任何高级的安全设置,我只是想使该警告静音。也许还准备1.5.x的代码

最佳答案

在处理安全问题时,我不会掉以轻心。首先,您应该了解问题的严重性,此处为good write upanother one

然后找出人们如何推荐该解决方案。最好的起点是xstream网站本身。有一个示例可以用作xstream security page的起点。

这是我的设置,基本上允许您执行大多数代码。

XStream xstream = new XStream();
// clear out existing permissions and set own ones
xstream.addPermission(NoTypePermission.NONE);
// allow some basics
xstream.addPermission(NullPermission.NULL);
xstream.addPermission(PrimitiveTypePermission.PRIMITIVES);
xstream.allowTypeHierarchy(Collection.class);
// allow any type from the same package
xstream.allowTypesByWildcard(new String[] {
    "com.your.package.**"
});

但是,在深入研究其源代码之后,这是我的看法:
XStream.setupDefaultSecurity(this); // to be removed after 1.5
xstream.allowTypesByWildcard(new String[] {
    "com.your.package.**"
});

因此,从本质上讲,一旦升级到1.5,您只需要一行。

请注意,您可能需要更多通配符以适合您的应用程序反序列化方案。这不是一个万能的答案,而是一个很好的起点恕我直言。

关于java - XStream的安全框架未初始化,XStream可能容易受到攻击,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44698296/

10-11 03:12