Spaces:
Sleeping
Sleeping
File size: 937 Bytes
446379e | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | import re
class InputValidator:
def __init__(self):
self.dangerous_patterns = [
r'ignore.*instruction',
r'forget.*rule',
r'bypass.*security',
r'show.*secret',
r'admin.*mode',
r'system.*prompt',
r'jailbreak',
r'reveal.*password',
r'override',
]
self.max_length = 500
def validate(self, query: str) -> tuple[bool, str]:
if len(query) > self.max_length:
return False, f"Query exceeds {self.max_length} chars"
query_normalized = query.encode('utf-8', 'ignore').decode('utf-8')
query_normalized = re.sub(r'[\x00-\x1F\x7F]', '', query_normalized)
for pattern in self.dangerous_patterns:
if re.search(pattern, query.lower(), re.IGNORECASE):
return False, f"Blocked by regex: '{pattern}'"
return True, query_normalized
|