Die meisten nützlichen Websites stützen sich auf externe Dienste: Jemand anderes zieht die Kartenzahlung ein, verschickt die SMS, zeichnet die Karte oder stellt die E-Mail zu. Du verbindest dich mit ihnen über eine API.
Das Verbinden lässt sich im Chat leicht beschreiben, das sichere Verbinden braucht ein paar Gewohnheiten. Hier sind sie.
Eine API lässt deine Website mit einem anderen Dienst sprechen, etwa für Zahlungen, SMS oder Karten. Halte Schlüssel als Projektgeheimnisse, rufe den Dienst nur serverseitig auf und prüfe jeden Webhook, bevor du ihm vertraust.
Was ein API-Schlüssel ist und wo er nie stehen darf
Ein API-Schlüssel ist das Passwort deines Kontos bei diesem Dienst. Wer ihn besitzt, kann dein Geld ausgeben oder deine Daten lesen. Er darf deshalb nie im Chat, im sichtbaren Code der Seite oder in einem öffentlichen GitHub-Repository auftauchen.
Speichere Schlüssel als Projektgeheimnisse und lass den Server sie lesen. Wenn ein Schlüssel durchsickert, widerrufe ihn sofort beim Anbieter und erstelle einen neuen.
Externe Dienste vom Server aus aufrufen
Alles, was im Browser des Besuchers läuft, lässt sich einsehen. Der Aufruf mit einem geheimen Schlüssel muss deshalb auf deinem Server stattfinden: Der Browser fragt deinen Server, und dein Server fragt den Dienst.
Manche Schlüssel sind für die Öffentlichkeit gedacht, oft als veröffentlichbare Schlüssel bezeichnet, und im Browser unbedenklich. Lies in der Dokumentation des Anbieters nach, welche Art du hast.
- Nutze zuerst den Testmodus des Anbieters mit Testschlüsseln.
- Behandle Ausfälle: Zeige eine freundliche Meldung, wenn der Dienst nicht antwortet.
- Beachte Nutzungsgrenzen, damit du nicht gesperrt wirst.
Webhooks: der Dienst ruft dich an
Ein Webhook ist die Gegenrichtung: Nach einer erfolgreichen Zahlung sendet der Anbieter eine Nachricht an eine Adresse deiner Website. So erfährt deine Seite, dass eine Bestellung wirklich bezahlt wurde.
Weil jeder eine gefälschte Nachricht an diese Adresse schicken könnte, prüfe die Signatur, die der Anbieter mitsendet, mit einem sicher gespeicherten Geheimnis. Sorge außerdem dafür, dass dieselbe Nachricht, die zweimal ankommt, keine zweite Bestellung auslöst.
Kosten, Grenzen und Datenschutz
Viele Anbindungen sind kostenpflichtig oder haben ein kostenloses Kontingent mit Grenzen. Zahlungen, SMS und manche Karten- oder KI-Dienste rechnen nach Nutzung ab, zu den Preisen des jeweiligen Anbieters, getrennt vom Bau deiner Website. Prüfe sie vor dem Start.
Erhält ein Dienst personenbezogene Daten deiner Kunden, kläre, wo sie verarbeitet werden, schließe bei Bedarf einen Auftragsverarbeitungsvertrag ab und nenne den Dienst in deiner Datenschutzerklärung. Das sind allgemeine Hinweise, keine Rechtsberatung.
Ein Prompt zum Kopieren
„Verbinde meine Buchungsseite mit einem SMS-Anbieter, damit Bestätigungsnachrichten verschickt werden. Lies den Schlüssel des Anbieters aus einem Projektgeheimnis, rufe ihn nur vom Server aus auf, baue einen Schalter für den Testmodus ein und zeige eine freundliche Fehlermeldung, wenn der Versand scheitert. Den Schlüssel trage ich selbst als Geheimnis ein.“