Zum Inhalt springen

Formulare für Cobrowsing vorbereiten

Wenn ein Agent eine Cobrowsing-Sitzung startet, streamt Univerx eine Live-Darstellung des DOM des Besuchers an den Agenten. Formulareingaben sind in diesem Stream enthalten, damit der Agent sehen kann, was der Besucher ausfüllt, und ihn Schritt für Schritt begleiten kann. Das ist gewollt und nützlich — aber bestimmte Felder sollten niemals für einen Agenten sichtbar sein, wie Passwörter, Zahlungskartennummern und andere personenbezogene Daten (PII).

Diese Anleitung gilt für beide Integrationsmethoden — das eingebettete Widget und das Client SDK. Maskierung erfolgt auf der DOM-Serialisierungsebene, bevor Daten den Browser des Besuchers verlassen. Die HTML-Attribute und CSS-Klassen funktionieren daher unabhängig davon, wie Sie Univerx integriert haben.

Diese Anleitung erklärt, was automatisch maskiert wird und wie Sie weitere Felder selbst markieren können.

Maskierung greift auf Serialisierungsebene ein, bevor Daten den Browser des Besuchers verlassen. Wenn ein Feld maskiert ist:

  • Sein aktueller Wert wird niemals erfasst oder übertragen.
  • Eingabe- und Änderungsereignisse für dieses Feld werden still verworfen — der Agent kann den Wert nicht durch Wiedergabe von Tastatureingaben rekonstruieren.
  • Der Agent sieht das Feld normal in seiner Ansicht gerendert, jedoch mit einem Platzhalter (z. B. ••••••••) anstelle des echten Wertes.
  • Label, Platzhaltertext und alle anderen Attribute des Felds sind weiterhin sichtbar, damit der Agent den Kontext verstehen kann.

Blockierung ist strenger: Ein blockiertes Element wird vollständig aus dem DOM-Snapshot ausgeschlossen und der Agent kann es überhaupt nicht sehen.

Das SDK maskiert folgende Felder automatisch, ohne zusätzlichen Code:

Was maskiert wirdWarum
<input type="password">Immer sensibel
<input type="hidden">Enthält oft CSRF-Token oder Sitzungs-IDs
<input type="email">Enthält persönliche E-Mail-Adressen
<input type="tel">Enthält persönliche Telefonnummern
autocomplete="current-password" oder "new-password"Passwort-Manager befüllen diese
autocomplete="cc-number", "cc-exp", "cc-csc", "credit-card"Zahlungskartendaten
name enthält password, pass, pwd (bei input, textarea, select)Gängige Namenskonventionen für Passwörter
name enthält credit, card, ccv, cvv (bei input, textarea, select)Gängige Namenskonventionen für Kartendaten
name enthält ssn, social (bei input, textarea, select)Sozialversicherungsnummern
name enthält csrf, xsrf, token, session, authSicherheits-Token
Jeder Wert, der einer 12–19-stelligen Ziffernfolge entsprichtIn generische Eingaben eingetippte Kreditkartennummern
Jeder Wert, der einem SVN-Muster entspricht (z. B. 123-45-6789)In generische Eingaben eingetippte Sozialversicherungsnummern
Jeder Wert, der einer E-Mail-Adresse entsprichtIn generische Eingaben eingetippte E-Mail-Adressen

Fügen Sie das Attribut data-cobrowse-mask oder die CSS-Klasse cobrowse-mask zu jedem Input-, Textarea- oder Select-Element hinzu, das Sie maskieren möchten.

<!-- SVN-Feld – Agent sieht ••••••••, nicht den echten Wert -->
<input type="text" name="ssn" data-cobrowse-mask />
<!-- Geburtsdatum -->
<input type="text" name="date_of_birth" data-cobrowse-mask />
<!-- Eine Textarea mit sensiblem Freitext -->
<textarea name="medical_notes" data-cobrowse-mask></textarea>

Nützlich, wenn Sie Maskierung lieber zentral über ein Designsystem oder Hilfsklassen steuern möchten:

<input type="text" name="ssn" class="cobrowse-mask" />

Beide Ansätze sind gleichwertig und können frei in Ihrer Codebasis kombiniert werden.

export function PersonalDetailsForm() {
return (
<form>
<label>
Vollständiger Name
<input type="text" name="full_name" />
</label>
{/* SVN ist sensibel – maskieren */}
<label>
Sozialversicherungsnummer
<input type="text" name="ssn" data-cobrowse-mask />
</label>
{/* Geburtsdatum ist personenbezogen – maskieren */}
<label>
Geburtsdatum
<input type="date" name="dob" data-cobrowse-mask />
</label>
</form>
);
}

Verwenden Sie data-cobrowse-block oder die CSS-Klasse cobrowse-block, wenn der Agent gar nichts sehen soll — nicht einmal den Feldrahmen oder das Label. Das Element und alle seine Kindelemente werden vollständig aus dem DOM-Snapshot ausgeschlossen.

<!-- Agent kann dieses Element überhaupt nicht sehen -->
<div class="sensitive-section" data-cobrowse-block>
<label>Konto-PIN</label>
<input type="text" name="pin" />
</div>
SzenarioEmpfohlener Ansatz
Passwort- oder PIN-EingabeAutomatisch – keine Aktion erforderlich, oder data-cobrowse-mask zur Klarheit hinzufügen
SVN, Steuer-ID, Geburtsdatumdata-cobrowse-mask
Medizinische oder rechtliche Freitextfelderdata-cobrowse-mask
Gesamter Zahlungsformular-Abschnittdata-cobrowse-block
Drittanbieter-iFrame (z. B. Stripe Elements)data-cobrowse-block am Container
Interne Admin-Notizen, die für den Besucher nicht relevant sinddata-cobrowse-block

Überprüfen Sie vor der Aktivierung von Cobrowsing in der Produktion jedes Formular, mit dem ein Besucher während einer Support-Sitzung interagieren könnte:

  • Alle Passwort- und PIN-Eingaben sind maskiert (automatisch, aber überprüfen).
  • Zahlungskartenfelder sind maskiert oder der Zahlungsabschnitt ist blockiert.
  • Von Behörden ausgestellte ID-Nummern (SVN, Steuer-ID, Reisepass) haben data-cobrowse-mask.
  • Geburtsdatum und andere personenbezogene Felder haben data-cobrowse-mask.
  • Eingebettete Drittanbieter-Komponenten (Zahlungs-iFrames, Identitätsverifizierungs-Widgets) sind mit data-cobrowse-block blockiert.
  • Freitextfelder, in die Besucher sensible Informationen eingeben könnten, sind maskiert.