UNPKG

syntropylog

Version:

An instance manager with observability for Node.js applications

35 lines (34 loc) 1.42 kB
/** * @file src/sanitization/SanitizationEngine.ts * @description Final security layer that sanitizes log entries before they are written by a transport. */ import { MaskingEngine } from '../masking/MaskingEngine'; /** * @class SanitizationEngine * A security engine that makes log entries safe for printing by stripping * potentially malicious control characters, such as ANSI escape codes. * This prevents log injection attacks that could exploit terminal vulnerabilities. */ export declare class SanitizationEngine { private readonly maskingEngine?; /** @private This regex matches ANSI escape codes used for colors, cursor movement, etc. */ private readonly ansiRegex; /** * @constructor * The engine is currently not configurable, but the constructor is in place for future enhancements. */ constructor(maskingEngine?: MaskingEngine); /** * Processes a log metadata object, sanitizing all its string values. * @param {Record<string, any>} meta - The metadata object to sanitize. * @returns {Record<string, any>} A new, sanitized metadata object. */ process(meta: Record<string, any>): Record<string, any>; /** * @private * Recursively traverses an object or array to sanitize all string values. * @param {any} data - The data to process. * @returns {any} The sanitized data. */ private sanitizeRecursively; }