誰かが私を助けてくれることを願っています。
OWASP ESAPI 2.1.0 と JavaEE を使用して、Web アプリケーションのいくつかのエントリを検証できるようにしています。ある時点で、Windows ファイル パスを検証する必要があったため、次のように「validation.properties」に新しいプロパティ エントリを追加しました。
Validator.PathFile=^([a-zA-Z]:)?(\\\\[\\w. -]+)+$
たとえば、ESAPI を介して "C:\TEMP\file.txt" のような文字列を検証しようとすると、ValidationException が発生します。
ESAPI.validator().getValidInput("PathFile", "C:\\TEMP\\file.txt", "PathFile", 100, false);
別の方法として、java.util.regex.Patternクラスを試して、同じ文字列の例で同じ正規表現をテストしたところ、問題なく動作しました。
Pattern.matches("^([a-zA-Z]:)?(\\\\[\\w. -]+)+$", "C:\\TEMP\\file.txt")
「validation.properties」に他の正規表現を追加し、正常に機能したと言わざるを得ません。なぜこれがそんなに難しいのですか?誰かがこれで私を助けてくれますか?