강화 수정의 일환으로 파일 경로의 유효성을 검사해야합니다. 예를 들어, Windows 경로 정규식
"C:/Users/<username>/sample1.txt"
-
는
"C:\Users\<username>\sample1.txt"
우리는 위의 경로를 검증하기위한 아래 정규식으로 시도하지만, 파일 경로가 \
포함 된 경우 우리는 오류와 함께 종료되었습니다. 그래서 파일 경로에 두 개의 슬래시를 모두 사용할 수있는 유효한 정규식을 제안하십시오.
Validator.FilePath=.*[\\]\\[!"#$%&'()_*+,/:;<=>[email protected]\\^`{|}~].*
경로가 유효한지 또는 실제로 존재하는지 확인하고 싶습니까? 후자의 경우 나는 단지 새로운'File' 객체를 만들고 프레임 워크가 경로 변환을 처리하도록 할 것입니다. 전자의 경우 비슷한 일을 할 수 있지만 부모 계층 구조를 반복하고 특정 조건에 도달 할 때까지 각 부모를 확인합니다. - 또는 일반적으로 경로 관련 유틸리티가있는 Apache Commons IO와 같은 라이브러리를 살펴볼 수도 있습니다. – Thomas
다음과 같이 시도해 보았습니다 :. * (\/| \\). * (\\ | \ /) [! "# $ % & '() _ * +, \/:; <=>? @ \\ ^' {|} ~] * –
개인 ESAPIValidationUtils() {} 공공 정적 문자열 getValidFilePath (문자열 reqParam) { \t 문자열 validFileName = ""; \t 시도 { \t \t 경우 (널 (null) = reqParam!) { \t. . \t \t validFileName = ESAPI.validator() getValidInput ("파일 경로", reqParam, "FilePath를", 256, TRUE); \t \t} \t} 캐치 (ValidationException 예) { \t \t Log.error ("com.dextersystems.util.ESAPIValidationUtils", "getValidFilePath()", ex); \t} \t return validFileName; } – Ramya