Enhance search functionality with case-insensitive title search, security improvements, and comprehensive tests
- Add case-insensitive search across all fields (inhalt, titel, geltungsbereich) - Include Vorgabe.titel field in search scope for better coverage - Implement comprehensive input validation against SQL injection and XSS - Add German error messages for validation failures - Escape search terms in templates to prevent XSS attacks - Add input length limits and character validation - Preserve user input on validation errors for better UX - Add comprehensive test suite with 27 tests covering all functionality - Test security features: XSS prevention, SQL injection protection, input validation - Test edge cases: expired content, multiple documents, German umlauts - Ensure all search fields work correctly with case-insensitive matching
This commit is contained in:
@@ -23,7 +23,7 @@ def validate_search_input(search_term):
|
||||
search_term = re.sub(r'<[^>]*>', '', search_term)
|
||||
|
||||
# Allow only alphanumeric characters, spaces, and basic punctuation
|
||||
# This prevents SQL injection and other malicious input
|
||||
# This prevents SQL injection and other malicious input while allowing useful characters
|
||||
if not re.match(r'^[a-zA-Z0-9äöüÄÖÜß\s\-\.\,\:\;\!\?\(\)\[\]\{\}\"\']+$', search_term):
|
||||
raise ValidationError("Ungültige Zeichen im Suchbegriff")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user