sanitize static method
dynamic
sanitize(
- dynamic value
Recursively strips control characters and trims strings within a payload (map, list, or scalar), returning a sanitized deep copy. This is a lightweight defense against injection-style payloads — it does not replace proper output encoding at the data-sink layer.
Implementation
static dynamic sanitize(dynamic value) {
if (value is String) {
final withoutControlChars = value.replaceAll(
RegExp(r'[\x00-\x08\x0B\x0C\x0E-\x1F]'),
'',
);
return withoutControlChars.trim();
}
if (value is Map) {
return value.map((key, val) => MapEntry(key, sanitize(val)));
}
if (value is List) {
return value.map(sanitize).toList();
}
return value;
}