java.lang.Object
de.cuioss.http.security.config.SecurityDefaults
Comprehensive collection of default values and constants for HTTP security configuration.
This class provides centralized constants for all security-related configuration values, making it easy to reference standard limits, common patterns, and recommended settings across the HTTP security validation system.
Design Principles
- Centralized Constants - Single source of truth for all defaults
- Security-First - Defaults prioritize security while maintaining usability
- Industry Standards - Based on RFC specifications and best practices
- Categorized - Organized by HTTP component type for easy navigation
Constant Categories
- Length Limits - Maximum sizes for various HTTP components
- Count Limits - Maximum quantities for collections
- Security Patterns - Common attack patterns to detect
- Content Types - Standard MIME types and their security implications
- Character Sets - Character validation patterns
- Configuration Presets - Pre-built configurations for common scenarios
Usage Examples
// Use constants in configuration
SecurityConfiguration config = SecurityConfiguration.builder()
.maxPathLength(SecurityDefaults.MAX_PATH_LENGTH_DEFAULT)
.maxParameterCount(SecurityDefaults.MAX_PARAMETER_COUNT_DEFAULT)
.blockedContentTypes(SecurityDefaults.DANGEROUS_CONTENT_TYPES)
.build();
// Check against limits
if (path.length() > SecurityDefaults.MAX_PATH_LENGTH_STRICT) {
throw new UrlSecurityException(...);
}
// Use pattern constants
if (SecurityDefaults.PATH_TRAVERSAL_PATTERNS.stream().anyMatch(input::contains)) {
// Handle path traversal attempt
}
Implements: Task C3 from HTTP verification specification- Since:
- 1.0
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionContent types that may pose security risksHeaders that should typically be blocked for securityHeaders commonly used for debugging that may expose sensitive informationstatic final SecurityConfigurationConfiguration preset for balanced security and usabilityCommon double-encoding patternsCharacters commonly used in injection attacksstatic final SecurityConfigurationConfiguration preset for maximum compatibilitystatic final longMaximum body size for default security configurations (5MB)static final longMaximum body size for lenient security configurations (10MB)static final longMaximum body size for strict security configurations (1MB)static final intMaximum cookie count for default security configurationsstatic final intMaximum cookie count for lenient security configurationsstatic final intMaximum cookie count for strict security configurationsstatic final intMaximum cookie name length for default configurationsstatic final intMaximum cookie name length for lenient configurationsstatic final intMaximum cookie name length for strict configurationsstatic final intMaximum cookie value length for default configurationsstatic final intMaximum cookie value length for lenient configurationsstatic final intMaximum cookie value length for strict configurationsstatic final intMaximum header count for default security configurationsstatic final intMaximum header count for lenient security configurationsstatic final intMaximum header count for strict security configurationsstatic final intMaximum header name length for default configurationsstatic final intMaximum header name length for lenient configurationsstatic final intMaximum header name length for strict configurationsstatic final intMaximum header value length for default configurationsstatic final intMaximum header value length for lenient configurationsstatic final intMaximum header value length for strict configurationsstatic final intMaximum parameter count for default security configurationsstatic final intMaximum parameter count for lenient security configurationsstatic final intMaximum parameter count for strict security configurationsstatic final intMaximum parameter name length for default configurationsstatic final intMaximum parameter name length for lenient configurationsstatic final intMaximum parameter name length for strict configurationsstatic final intMaximum parameter value length for default configurationsstatic final intMaximum parameter value length for lenient configurationsstatic final intMaximum parameter value length for strict configurationsstatic final intMaximum path length for default security configurationsstatic final intMaximum path length for lenient security configurationsstatic final intMaximum path length for strict security configurationsstatic final charNull byte characterCommon path traversal patterns to detectCommon control characters that may be problematicContent types that are generally safe for most applicationsstatic final SecurityConfigurationConfiguration preset for strict security requirementsCookie names that may indicate security issuesParameter names that are commonly used in HTTP-layer attacksPatterns indicating potential directory traversal attempts and protocol handler attacksUnicode normalization forms that should be checkedContent types used for file uploads -
Method Summary
-
Field Details
-
MAX_PATH_LENGTH_STRICT
Maximum path length for strict security configurations- See Also:
-
MAX_PATH_LENGTH_DEFAULT
Maximum path length for default security configurations- See Also:
-
MAX_PATH_LENGTH_LENIENT
Maximum path length for lenient security configurations- See Also:
-
PATH_TRAVERSAL_PATTERNS
Common path traversal patterns to detect -
SUSPICIOUS_PATH_PATTERNS
Patterns indicating potential directory traversal attempts and protocol handler attacks -
MAX_PARAMETER_COUNT_STRICT
Maximum parameter count for strict security configurations- See Also:
-
MAX_PARAMETER_COUNT_DEFAULT
Maximum parameter count for default security configurations- See Also:
-
MAX_PARAMETER_COUNT_LENIENT
Maximum parameter count for lenient security configurations- See Also:
-
MAX_PARAMETER_NAME_LENGTH_STRICT
Maximum parameter name length for strict configurations- See Also:
-
MAX_PARAMETER_NAME_LENGTH_DEFAULT
Maximum parameter name length for default configurations- See Also:
-
MAX_PARAMETER_NAME_LENGTH_LENIENT
Maximum parameter name length for lenient configurations- See Also:
-
MAX_PARAMETER_VALUE_LENGTH_STRICT
Maximum parameter value length for strict configurations- See Also:
-
MAX_PARAMETER_VALUE_LENGTH_DEFAULT
Maximum parameter value length for default configurations- See Also:
-
MAX_PARAMETER_VALUE_LENGTH_LENIENT
Maximum parameter value length for lenient configurations- See Also:
-
SUSPICIOUS_PARAMETER_NAMES
Parameter names that are commonly used in HTTP-layer attacks -
MAX_HEADER_COUNT_STRICT
Maximum header count for strict security configurations- See Also:
-
MAX_HEADER_COUNT_DEFAULT
Maximum header count for default security configurations- See Also:
-
MAX_HEADER_COUNT_LENIENT
Maximum header count for lenient security configurations- See Also:
-
MAX_HEADER_NAME_LENGTH_STRICT
Maximum header name length for strict configurations- See Also:
-
MAX_HEADER_NAME_LENGTH_DEFAULT
Maximum header name length for default configurations- See Also:
-
MAX_HEADER_NAME_LENGTH_LENIENT
Maximum header name length for lenient configurations- See Also:
-
MAX_HEADER_VALUE_LENGTH_STRICT
Maximum header value length for strict configurations- See Also:
-
MAX_HEADER_VALUE_LENGTH_DEFAULT
Maximum header value length for default configurations- See Also:
-
MAX_HEADER_VALUE_LENGTH_LENIENT
Maximum header value length for lenient configurations- See Also:
-
DANGEROUS_HEADER_NAMES
Headers that should typically be blocked for security -
DEBUG_HEADER_NAMES
Headers commonly used for debugging that may expose sensitive information -
MAX_COOKIE_COUNT_STRICT
Maximum cookie count for strict security configurations- See Also:
-
MAX_COOKIE_COUNT_DEFAULT
Maximum cookie count for default security configurations- See Also:
-
MAX_COOKIE_COUNT_LENIENT
Maximum cookie count for lenient security configurations- See Also:
-
MAX_COOKIE_NAME_LENGTH_STRICT
Maximum cookie name length for strict configurations- See Also:
-
MAX_COOKIE_NAME_LENGTH_DEFAULT
Maximum cookie name length for default configurations- See Also:
-
MAX_COOKIE_NAME_LENGTH_LENIENT
Maximum cookie name length for lenient configurations- See Also:
-
MAX_COOKIE_VALUE_LENGTH_STRICT
Maximum cookie value length for strict configurations- See Also:
-
MAX_COOKIE_VALUE_LENGTH_DEFAULT
Maximum cookie value length for default configurations- See Also:
-
MAX_COOKIE_VALUE_LENGTH_LENIENT
Maximum cookie value length for lenient configurations- See Also:
-
SUSPICIOUS_COOKIE_NAMES
Cookie names that may indicate security issues -
MAX_BODY_SIZE_STRICT
Maximum body size for strict security configurations (1MB)- See Also:
-
MAX_BODY_SIZE_DEFAULT
Maximum body size for default security configurations (5MB)- See Also:
-
MAX_BODY_SIZE_LENIENT
Maximum body size for lenient security configurations (10MB)- See Also:
-
SAFE_CONTENT_TYPES
Content types that are generally safe for most applications -
DANGEROUS_CONTENT_TYPES
Content types that may pose security risks -
UPLOAD_CONTENT_TYPES
Content types used for file uploads -
NULL_BYTE
Null byte character- See Also:
-
PROBLEMATIC_CONTROL_CHARS
Common control characters that may be problematic -
INJECTION_CHARACTERS
Characters commonly used in injection attacks -
DOUBLE_ENCODING_PATTERNS
Common double-encoding patterns -
UNICODE_NORMALIZATION_FORMS
Unicode normalization forms that should be checked -
STRICT_CONFIGURATION
Configuration preset for strict security requirements -
DEFAULT_CONFIGURATION
Configuration preset for balanced security and usability -
LENIENT_CONFIGURATION
Configuration preset for maximum compatibility
-