/**
 * Defense-in-depth: liefert einen URL-String nur zurück, wenn er ein
 * sicheres http(s)-Schema hat. Sonst undefined.
 *
 * Hintergrund: das Backend validiert beim Speichern (Pentest 46.1),
 * aber Alt-Daten in der DB können noch `javascript:alert(...)` o.ä.
 * enthalten. React eskapt URLs in `href` NICHT automatisch – ein Klick
 * auf einen `javascript:`-Link triggert die XSS im User-Browser.
 *
 * Diese Funktion wird überall dort eingesetzt, wo wir User-Input
 * als `<a href>` rendern oder per `window.open` öffnen.
 */
export function safeHttpUrl(value: string | null | undefined): string | undefined {
  if (!value) return undefined;
  const trimmed = value.trim();
  if (trimmed === '') return undefined;
  try {
    const parsed = new URL(trimmed);
    if (parsed.protocol !== 'http:' && parsed.protocol !== 'https:') return undefined;
    return trimmed;
  } catch {
    return undefined;
  }
}
