You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否让Java正则引擎禁用变长后向匹配?

如何让Java正则引擎恢复旧版行为或启用严格编译检查?

从Java 9开始,正则引擎新增了变长后向匹配支持。这项功能虽有实用价值,但会大幅提升正则表达式遭遇ReDOS攻击的风险,甚至普通用户的输入都可能意外触发这类攻击。

由于一些超出讨论范围的原因,我无法对应用所使用的正则表达式进行理想程度的管控。目前遇到了一个问题:部分正则表达式在旧版Java中根本无法编译,但在Java 9+环境下虽然能编译通过,却会导致应用挂起。我们更希望这类有问题的正则能直接编译失败,而非大部分时间正常运行、仅在遇到特定输入时崩溃。

我猜测可能没有办法,但还是想问问:有没有方法让Java正则引擎恢复旧版行为,或者启用更严格的检查机制,让这类存在风险的正则表达式无法通过编译?

补充说明:我知道有一个开源的正则静态分析工具可以用来确保新正则的安全性,但如果正则引擎本身能提供类似“严格模式”的设置就更方便了。


内容的提问来源于stack exchange,提问作者user435779

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 19:07:32