// Leichtgewichtiger HTML-Sanitizer für Admin-/AI-erstellte Inhalte (richtext/html-Blöcke, Seiten-Body). // Entfernt aktive Vektoren (script/style/link/meta/object/embed, on*-Handler, javascript:/data:text-html-URLs). // iframe bleibt erlaubt (Embeds wie Karten/Video), da kein direktes Eltern-XSS. export function sanitizeHtml(input) { if (input == null) return ''; let s = String(input); // gefährliche Elemente inkl. Inhalt entfernen s = s.replace(/<\s*(script|style|object|embed)\b[\s\S]*?<\s*\/\s*\1\s*>/gi, ''); // selbstschließende/lose gefährliche Tags s = s.replace(/<\s*(script|style|link|meta|object|embed)\b[^>]*>/gi, ''); // Inline-Event-Handler (onclick=, onerror=, …) s = s.replace(/\son\w+\s*=\s*("[^"]*"|'[^']*'|[^\s>]+)/gi, ''); // javascript:- und data:text/html-URLs in href/src neutralisieren s = s.replace(/(href|src|xlink:href)\s*=\s*("\s*javascript:[^"]*"|'\s*javascript:[^']*'|javascript:[^\s>]+)/gi, '$1="#"'); s = s.replace(/(href|src)\s*=\s*("\s*data:text\/html[^"]*"|'\s*data:text\/html[^']*')/gi, '$1="#"'); return s; }