首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用woodstox配置max属性大小

使用woodstox配置max属性大小
EN

Stack Overflow用户
提问于 2017-06-22 16:19:37
回答 2查看 2K关注 0票数 0

由于一些奇怪的原因,woodstox-core-asl似乎将属性值的最大大小限制为512 of。因此,XML解析失败,错误(下面524288是512 is的限制):

代码语言:javascript
复制
com.ctc.wstx.exc.WstxParsingException: Maximum attribute size (524288) exceeded
 at [row,col {unknown-source}]: [1,898330]
    at com.ctc.wstx.sr.StreamScanner.constructWfcException(StreamScanner.java:606)
    at com.ctc.wstx.sr.StreamScanner.throwParseError(StreamScanner.java:479)
    at com.ctc.wstx.sr.StreamScanner.throwParseError(StreamScanner.java:464)
    at com.ctc.wstx.sr.BasicStreamReader.parseAttrValue(BasicStreamReader.java:1959)
    at com.ctc.wstx.sr.BasicStreamReader.handleNsAttrs(BasicStreamReader.java:3063)

有没有一种方法来配置这个最大属性大小,甚至完全禁用它?(为什么属性值必须这么大,这是一个不同的论点--我必须看看我能做些什么。)

我试着查看源代码,但我只能有限地访问它--无法在工作中浏览github。他们的文档中也没有任何指针。

我使用的库的版本是4.2.0。升级版本是可能的,但即使是较新的版本,它们似乎也有这种限制。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-06-23 00:58:37

是的,有个办法可以改变这种状况。错误信息确实应该提出来,但是因为它没有.让我们看看。常量是在WstxInputProperties中定义的(对于特定于Woodstox的常量,而不是标准的Stax ),您需要的属性是P_MAX_ATTRIBUTE_SIZE。若要有效禁用检查,请使用Integer.MAX_VALUE的值。值是通过调用XMLInputFactory.setProperty方法更改的。

增加这些限制是为了防止各种拒绝服务(DoS)攻击:有一些;您可以在WstxInputProperties中看到可用的攻击。设置是相当保守的,如果真的需要处理512 to的属性值,可能会很有意义.:)

票数 1
EN

Stack Overflow用户

发布于 2022-03-31 06:24:35

VM选项

代码语言:javascript
复制
-Dxml.ws.maximum.AttributeSize=123456789

或Java

代码语言:javascript
复制
System.setProperty("xml.ws.maximum.AttributeSize", String.valueOf(123456789)); 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44704698

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档