Reputation: 21
I have a system where user can upload file. I want to throw an exception in case the filename is contains sensitive characters like "../", etc. (to avoid Path Traversal vulnerability: "file/../../file.txt").
I have the code String originalFilename = multipartFile.getOriginalFilename();
There's an option to use StringUtils.cleanPath(originalFilename)
but it's not exactly what I need (I want to validate the file, not to normalize it).
The only option I see is to compare the normalized filename (the result of the StringUtils.cleanPath(...)
method) with the original String, but I'd like to know if there's something easier. For example something like: StringUtils.isPathValid(originalFilename)
.
In addition, I'd prefer to use a method that is already developed (open source) and commonly used instead of creating my own solution with regex.
Upvotes: 0
Views: 1448