/** * Validate SVG content for security vulnerabilities * Detects and blocks malicious patterns commonly used in SVG-based attacks */ export function validateSvg(buffer) { try { const content = buffer.toString('utf8'); const dangerousPatterns = [ // Script tags /]/i, /<\/script>/i, // Event handlers (onclick, onload, onerror, etc.) /\son\w+\s*=/i, // JavaScript URLs /javascript:/i, /data:text\/html/i, // Foreign objects (can embed HTML) /]/i, // Embedded iframes /]/i, // Embedded objects and embeds /]/i, /]/i, // Base64 encoded scripts (common obfuscation technique) /data:image\/svg\+xml;base64,[\w+/]*PHNjcmlwdA/i, // XLink href with javascript (deprecated but still dangerous) /xlink:href\s*=\s*["']javascript:/i, // Import statements /@import/i, // External resource references that could be dangerous /]*\[/i, // Attempt to use CDATA to hide scripts /