gpt4 book ai didi

java - 使用 woodstox 配置最大属性大小

转载 作者:行者123 更新时间:2023-12-02 12:47:26 27 4
gpt4 key购买 nike

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

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。升级版本是可能的,但即使使用较新的版本,他们似乎也有这个限制。

最佳答案

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

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

关于java - 使用 woodstox 配置最大属性大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44704698/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com