# Security

URL: https://docs.ablyft.com/de/developers/consent-and-security/security/

> Wie der Zugriff auf ABlyft geschützt ist, was das Snippet sendet und was du bei der Integration beachten solltest.



Diese Seite listet das sicherheitsrelevante Verhalten des Snippets, der REST API und des MCP-Servers auf, das wir anhand
ihrer Funktionsweise beschreiben können. Sie ist keine Compliance-Erklärung. Bei Fragen zu Zertifizierungen,
Datenverarbeitung oder Verträgen wende dich an den ABlyft-Support.

## Zugriff auf deinen Account

* **Rollen.** Jedes Team-Mitglied hat eine Rolle (Viewer, Member, Admin oder Owner). Die Rolle bestimmt, was jemand in
  der App, in der API und über den MCP-Server lesen und ändern kann. Siehe [Rollen & Berechtigungen](https://docs.ablyft.com/de/guides/projects-and-teams/roles-and-permissions/).
* **API-Tokens** lassen Skripte in deinem Namen in der [REST API](https://docs.ablyft.com/de/developers/reference/rest-api/) handeln. Du erstellst
  und widerrufst sie in deinen persönlichen Einstellungen unter **API Tokens**, siehe [Authentication](https://docs.ablyft.com/de/developers/reference/rest-api/#authentication).
* **MCP-Verbindungen** lassen KI-Assistenten in deinem Namen handeln. Sie werden über einen Login-Schritt (OAuth)
  autorisiert und in deinen persönlichen Einstellungen unter **MCP Connections** aufgelistet, wo du sie widerrufen
  kannst. Siehe [MCP server](https://docs.ablyft.com/de/developers/reference/mcp-server/).

> **Behandle Tokens wie Passwörter:** Ein Token hat die Berechtigungen deines Users innerhalb deiner Teams. Speichere es in einem Secret Manager, niemals im
> Front-End-Code oder in einem Repository. Wenn ein Token möglicherweise geleakt wurde, widerrufe es in der Token-Liste
> und erstelle ein neues. Bevorzuge **Read only**-Tokens, wenn kein Schreibzugriff nötig ist.

## Was das Snippet ist

Das Snippet ist eine öffentliche JavaScript-Datei auf dem CDN (`https://cdn.ablyft.com/s/<project ID>.js`). Jeder, der
die URL kennt, kann sie lesen.

> **Lege keine Geheimnisse ins Snippet:** Das Snippet enthält die Konfiguration deiner laufenden Experiments, Audiences, Pages und Goals, einschließlich des
> JavaScripts und CSS deiner Variations und deines Project-Codes. Lege keine Passwörter, API-Schlüssel oder privaten
> Daten in Experiment-Code, Helper-Code oder Audience-Regeln.

## Was das Snippet sendet

Das Snippet sendet Events mit `navigator.sendBeacon()` an den Tracker, standardmäßig `https://log.ablyft.com`. Eine
Anfrage enthält:

| Teil                                    | Inhalt                                                                                                                                                     |
| --------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `projectId`, `source`, `snippetVersion` | Deine Project ID, der feste Wert `ablyft-snippet` und die Snippet-Version                                                                                  |
| `user.experimentsBucket`                | Die Zuweisungen des Visitors: Experiment ID zu Variation ID                                                                                                |
| `user.attributes`                       | Der Browser-User-Agent des Visitors, die Seiten-URL, der Visitor-Typ (`new` oder `returning`) und der Gerätetyp (`desktop`, `tablet`, `mobile`)            |
| `events`                                | Die Events, jeweils mit Typ (`bucketing`, `pageview`, `click`, `custom`, `revenue`), Wert, Zeitstempel, ID und bei Goals der Goal ID und den Variation IDs |

Die Anfrage hat kein Feld für eine Visitor ID, einen Namen oder eine E-Mail-Adresse. Weil URL und User-Agent gesendet
werden, solltest du keine personenbezogenen Daten in URLs von Seiten legen, auf denen Experiments laufen.

Das Snippet sendet Events nur, wenn der Visitor Teil mindestens eines Experiments ist, nicht für Bots und nicht, wenn
der Visitor sich abgemeldet hat oder der Browser Do Not Track sendet, während **Adhere to Do Not Track** aktiviert ist.
Siehe [Storage & privacy](https://docs.ablyft.com/de/developers/consent-and-security/storage-and-privacy/).

## Frames

Das Snippet läuft standardmäßig nicht in iFrames, siehe [Requirements](https://docs.ablyft.com/de/developers/installation/requirements/#iframes), um es zu erlauben.

## URL-Parameter können ändern, was ein Visitor sieht

Einige [URL-Parameter](https://docs.ablyft.com/de/developers/reference/url-parameters/) ändern, was der eigene Browser des Visitors zeigt, zum
Beispiel `ablyft_preview` und `ablyft_set_bucketing`. Sie wirken sich nur auf den Browser aus, der die URL öffnet. Der
Preview-Modus schaltet außerdem das Goal-Tracking in diesem Browser aus. Experiments im Status Preview sind Teil des
öffentlichen Snippets, verlasse dich also nicht darauf, dass eine Variation vor dem Start geheim bleibt.

## Content Security Policy

Wenn du eine Content Security Policy verwendest, siehe [Requirements](https://docs.ablyft.com/de/developers/installation/requirements/#network-and-content-security-policy)
für die zu erlaubenden Domains und die Verwendung von `eval`.

## Nächste Schritte

- [Storage & privacy](https://docs.ablyft.com/de/developers/consent-and-security/storage-and-privacy/): Was im Browser gespeichert wird.
- [REST API](https://docs.ablyft.com/de/developers/reference/rest-api/): Authentifizierung mit API-Tokens.

