我正在使用内置的esapi验证程序。定义如下:

Validator.SafeString=^[.\\p{Alnum}\\p{Space}]{0,1024}$


我对正则表达式不是很熟悉,经过阅读后,我了解到此表达式与字母数字和空格匹配。

我想将此表达式扩展为包括*,-()&+和/。我尝试执行以下操作,但似乎不起作用

Validator.SafeString=^[.\\p{Alnum}\\p{Space}*,-()&+]{0,1024}$

最佳答案

我将在validation.properties中创建一个单独的条目,OWASP的SafeString目的是为任何应用程序提供保证的安全字符串。通过接受可以用Javascript解释为代码的字符,您将不再具有API预期的SafeString。如果您的应用程序的其他部分按原计划使用SafeString,则可能会造成灾难性的后果。

使用@ Fede's第一个正则表达式,但是像这样解决它:

Validator.SomethingElse=^[.\\p{Alnum}\\p{Space}*,()&+-]{0,1024}$


并这样称呼它:

ESAPI.validator().isValidInput(CONTEXT, input, "SomethingElse", MAX_FIELD_LENGTH, true);


注意,“ true”标记对应于字符串是否可以为null

09-04 06:47