下面是我用来验证文件路径的 OWASP 正则表达式。 但它没有按预期工作。 请找到以下详细信息。
的正则表达式
file path = "^[a-zA-Z0-9:/\\!@#$%^&{}\[\]()_+\-=,.~'` ]{1,255}$";
Input1 = "E:HelloOneFilePath1";
Input2 = "E:HelloOne1FilePath";
文件路径的正则表达式适用于 Input1,而不适用于 Input2。原因是在 Input2 中,如果出现数字,则立即在斜杠 \ 之后,它无法通过验证。有人可以帮忙修改这个模式吗?
谢谢:)
我自己解决了这个问题。这里的java代码没有问题。我正在使用 ESAPI 库类的内置 validInput() 方法来验证文件路径。但是此方法不允许存在问题的八进制字符。
因此,我删除了此ESAPI库类仅用于文件路径验证的方法。然后我添加了一个自定义方法。