Documentation menu

Sicherheit & Widerrufen des Zugriffs

Tokens statt Passwörter

Das Verbinden eines Assistenten gibt niemals Ihr MailInApp-Passwort oder einen API-Schlüssel weiter. Das Bestätigen des Zustimmungsbildschirms erstellt ein OAuth-Access-Token, das genau auf die von Ihnen angehakten Berechtigungen beschränkt und genau an das von Ihnen ausgewählte Konto gebunden ist. Tokens sind opake Zufallszeichenketten, die gehasht gespeichert werden — dasselbe Muster, das MailInApp bereits für Entwickler-API-Schlüssel verwendet —, sodass ein Datenbankzugriff keine nutzbaren Zugangsdaten wiederherstellen kann, und das Widerrufen eines Tokens wirkt sofort, statt auf einen Ablauf zu warten.

  • Access-Token sind 1 Stunde gültig.
  • Refresh-Token sind 60 Tage gültig und rotieren bei jeder Verwendung — das alte funktioniert in dem Moment nicht mehr, in dem ein neues ausgestellt wird, und wird jemals ein bereits rotiertes Refresh-Token erneut verwendet (ein Zeichen, dass es geleakt ist), wird die gesamte Verbindung automatisch widerrufen, nicht nur dieses eine Token.

Zweistufige Bestätigung vor jedem Versand

Dass campaigns:send gewährt wurde, bedeutet nicht, dass ein Assistent Ihre Kontakte in einem Schritt bemailen kann. Ein Versand läuft immer über zwei separate Tool-Aufrufe:

  1. prepare_send löst Ihre Zielgruppe auf, wendet Sperrungen an und rendert eine echte Vorschau — als rein lesend annotiert, weil es nichts versendet. Es liefert die Empfängerzahl, eine Stichprobe von Adressen, das gerenderte HTML und ein kurzlebiges confirmationToken, das an genau dieses Projekt, diesen Betreff und diese Zielgruppe gebunden ist.
  2. confirm_send benötigt genau dieses Token sowie genau dasselbe Projekt/denselben Betreff/dieselbe Zielgruppe, für die es ausgestellt wurde. Jede Abweichung — ein anderer Betreff, eine andere Zeilenauswahl, ein abgelaufenes Token (10-Minuten-Fenster) — wird rundweg abgelehnt.

Die praktische Wirkung: Ein Assistent kann keine Mail versenden, ohne vorher zu zeigen, was er versenden will und an wie viele Personen, und er kann die Zielgruppe oder den Betreff nicht zwischen dem Anzeigen der Vorschau und dem tatsächlichen Versand austauschen. Bei Claude wird das Ergebnis von prepare_send als echte Karte mit eigener Confirm & Send-Schaltfläche gerendert — sodass die menschliche Freigabe ein Klick auf eine gerenderte Vorschau ist, kein Satz in einem Chat-Verlauf, über den sich ein Modell hinwegreden könnte.

Jeder auf diesem Weg ausgelöste Versand durchläuft zusätzlich weiterhin die bestehenden Schutzmaßnahmen Ihres Kontos: die connectorSendRecipientsMonthly-Obergrenze Ihres Tarifs (getrennt von Ihrem regulären monatlichen Sendevolumen und deutlich niedriger als dieses — 0 im Free-Tarif), dieselbe Sperrliste, die jeder andere Versand prüft, und die Gesamt-Obergrenze für monatliche Versände Ihres Kontos. Jeder wird außerdem als eigener Audit-Datensatz protokolliert.

Nicht vertrauenswürdige Inhalte werden eingegrenzt, nicht vertraut

Kontaktfelder, Nachrichtentexte eingehender Postfach-Mails und Freitextantworten aus Formularen werden alle von anderen Personen als Ihnen geschrieben — einem Empfänger oder wer auch immer Ihr Support-Postfach anschreibt. Tools, die diese Inhalte zurückgeben, kennzeichnen sie im Tool-Ergebnis klar als nicht vertrauenswürdige Daten, sodass Ihr Assistent sie als etwas zum Lesen und Zusammenfassen behandelt, niemals als zu befolgende Anweisung. (Für die technisch Interessierten: Diese Eingrenzung befindet sich im Tool-Ergebnis, niemals in der Tool-Beschreibung — Verhaltensanweisungen in einer Beschreibung zu platzieren ist genau die Art von Prompt-Injection-Angriffsfläche, die Connector-Reviewer auf den ersten Blick ablehnen.)

Was kein Tool jemals erreichen kann

Kein Connector-Tool — unabhängig davon, welche Scopes Sie gewähren — kann einen API-Schlüssel, ein Webhook-Signatur-Secret, ein SMTP-Passwort oder ein OAuth-Client-Secret für eine verbundene Datenquelle lesen oder rotieren; Zahlungs-, Domain- oder SMTP-Einstellungen ändern; oder Team-Einladungen verwalten. Das spiegelt genau die Einschränkungen wider, die ein editor-Teammitglied überall sonst in MailInApp bereits nicht erreichen kann. Auch hier fasst nichts Stripe oder die Abrechnung an — eine angefochtene Zahlung oder eine Rückerstattung bleibt eine reine Dashboard-Aktion.

Welches Konto, immer erneut geprüft

Eine Verbindung wird zum Zeitpunkt der Zustimmung an ein Konto gebunden und liest niemals erneut einen Header aus, um zu entscheiden, als welches Konto sie agiert (anders als eine angemeldete Dashboard-Sitzung, die zwischen Unternehmen wählt). Diese Bindung wird bei jedem einzelnen Aufruf erneut gegen Ihre aktuelle Teammitgliedschaft geprüft — werden Sie aus einem Team entfernt oder ändert sich Ihre Rolle, spiegelt der allernächste Aufruf dieser Verbindung die neue Realität wider, nicht das, was galt, als Sie sie gewährt haben.

Eine Verbindung widerrufen

Gehen Sie zu Verbindungen im Dashboard (/dashboard/connections). Jeder von Ihnen freigegebene Assistent wird mit seinen gewährten Scopes und dem letzten Aufruf aufgelistet; Widerrufen wirkt sofort — jedes Token, das dieser Assistent hält, Access- wie Refresh-Token gleichermaßen, funktioniert beim allernächsten Aufruf nicht mehr. Auf Seiten der Plattform (Claude/Gemini) muss zuerst nichts rückgängig gemacht werden; das Widerrufen hier ist immer ausreichend.