Package com.oorian.security
Class FileUploadValidator
java.lang.Object
com.oorian.security.FileUploadValidator
Validates uploaded files against the configured
FileUploadConfig policies.
FileUploadValidator checks file size, extension, MIME type, and optionally validates the file's magic numbers (file signature bytes) to prevent content-type spoofing attacks.
Usage:
FileUploadValidator.Result result = FileUploadValidator.validate(
"photo.jpg", "image/jpeg", tempFile.length(), tempFile);
if (!result.isValid()) {
showError(result.getMessage());
return;
}
- Since:
- 2.1
- Version:
- 1.0
- Author:
- Marvin P. Warble Jr.
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classResult of a file upload validation check. -
Method Summary
Modifier and TypeMethodDescriptionstatic FileUploadConfigReturns the current file upload configuration.static booleanReturns whether file upload validation is configured.static StringsanitizeFilename(String filename) Sanitizes a filename by removing path traversal sequences and unsafe characters.static FileUploadValidator.ResultValidates an uploaded file against the configured policies.
-
Method Details
-
getConfig
Returns the current file upload configuration.- Returns:
- the configuration, or
nullif not configured
-
isConfigured
public static boolean isConfigured()Returns whether file upload validation is configured.- Returns:
trueif a configuration has been set
-
validate
public static FileUploadValidator.Result validate(String originalFilename, String contentType, long fileSize, File file) Validates an uploaded file against the configured policies.If no configuration is set, all files are accepted.
- Parameters:
originalFilename- the original filename from the clientcontentType- the MIME content type reported by the clientfileSize- the file size in bytesfile- the local file for magic number validation (may benullto skip magic number checks)- Returns:
- a
FileUploadValidator.Resultindicating whether the file passed validation
-
sanitizeFilename
Sanitizes a filename by removing path traversal sequences and unsafe characters.This method:
- Strips directory components (path separators)
- Removes null bytes and control characters
- Replaces sequences of dots that could enable path traversal
- Replaces unsafe characters with underscores
- Parameters:
filename- the original filename to sanitize- Returns:
- the sanitized filename, or
"unnamed"if the result is empty
-