【问题标题】:How can I extend the http request parameter length limitation in ESAPI?如何扩展 ESAPI 中的 http 请求参数长度限制?
【发布时间】:2021-05-08 00:25:48
【问题描述】:

我在工作环境中使用 OpenIAM 作为 SSO 平台。 当我尝试集成另一个支持 SAML 2.0 的 Web 系统时, 我收到一条错误消息,提示“SAMLRequest 参数超过 2000 个字符的限制”

OpenIAM 支持表示 ESAPI 在其验证器中有 2,000 个字符的限制,并且无法扩展它。

有什么方法可以使用 .properties 文件或 java 命令行参数来扩展 ESAPI 中 HTTP 请求参数长度的限制,以便我可以集成我的 Web 应用程序?

【问题讨论】:

    标签: esapi


    【解决方案1】:

    这是我们 5 年前修复的 ESAPI 错误。如果 OpenIAM 升级到 >= 2.2.3.1,这将成为 ESAPI.properties 中的可配置参数

    特别是MaxHeaderValueSize

    默认值是 4096,这对于大多数应用程序来说是相当宽松的。在此之前,默认大小为 2000,在此之前为 100。我建议查看对这么大值的实际需求。

    【讨论】:

    • 感谢您的回答。你能告诉我参数名称是什么吗?在validation.properties文件中是“Validator.SafeString=^[.\\p{Alnum}\\p{Space}]{0,1024}$”吗?
    • 实际上是@jaydev,在研究为您找到该参数时,这是 5 年前参数化的。如果消费库没有使用更新版本的 ESAPI,我会推送它,因为截至 2016 年或更早,有适用于该库的 CVE。该属性是 ESAPI.properties 中的 MaxHeaderValueSize。默认值为 4096,所以我想问为什么你真的需要一个比这个更大的值?
    • 感谢您提供的信息。 OpenIAM 使用的 ESAPI 版本是 2.1.0,正如您提到的,该值似乎设置为 2,000。我的最大 URL 长度约为 2.5K 个字符,因此我对 4,096 字节的限制感到满意。如果他们不使用 ESAPI.properties 文件,是否可以创建 ESAPI.properties 并将其放置到应用程序主目录中?
    • 如果仍设置为 2000,则无法解决此问题。在 2.1.0 版本推出之前,它是从 100 硬编码为最后一分钟的“修复”。
    • 您可以克隆 2.1.0 的存储库,修复硬代码本身并用您的“破解”版本替换打包版本。这是我唯一能想到的从臀部射击
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多