gpt4 book ai didi

Java bean 验证正则表达式摆脱 CSV 注入(inject)

转载 作者:太空宇宙 更新时间:2023-11-04 10:36:23 25 4
gpt4 key购买 nike

在我们的java应用程序中,用户可以将数据导出到excel文件,这很容易出现CSV Injection 。为了避免此漏洞,我想限制用户输入,例如 =HYPERLINK(E3, F3) 如果任何参数以以下字符开头:

Equals to ("=")
Plus ("+")
Minus ("-")
At ("@")

我尝试了一些正则表达式:

^[^+=@-]

^((?![+=@-]).)*

但是这些在 Bean 验证中并没有按预期工作。

最佳答案

您只需转义正则表达式中的特殊字符,如下所示:

String csvInjectionRegex = "^[^\\+\\=@\\-]";

以下字符是需要在正则表达式中转义的字符:

<([{\^-=$!|]})?*+.>

要逃避他们,你可以:

  • 使用反斜杠"\\"
  • 或使用 \Q\E 中包含的每个特殊字符。示例:("\\Q|\\E")

  • 如果您有任何疑问,请使用 Pattern.quote(specialString):

String csvInjectionRegex = "^[^"+Pattern.quote("+-=@")+"]";

关于Java bean 验证正则表达式摆脱 CSV 注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49413152/

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