我正在使用内置的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
。