So schützen Sie Ihre API – Schnellstartanleitung

Warum ist das notwendig?

CrowdHandler leitet Endnutzer, die versuchen, auf eine geschützte Webseite oder eine Anwendungsseite zuzugreifen, in einen Warteraum um. Sind die API-Endpunkte, die das Frontend-Erlebnis steuern, auffindbar – beispielsweise, wenn sie clientseitig aufgerufen werden –, könnten technisch versierte Nutzer, Schwarzhändler und/oder Bots versuchen, das Frontend vollständig zu umgehen, um über Ihre API-Endpunkte direkt an das Gewünschte zu gelangen.

Sollte ich mir Sorgen machen?

Auch wenn dies kein schlüssiges Argument ist, sollten Sie in Betracht ziehen, Ihre API-Endpunkte zu schützen, wenn eines oder mehrere der folgenden Kriterien erfüllt sind:

  • Ihre Transaktions-API-Endpunkte sind auffindbar.
  • Sie verkaufen beliebte Produkte, bei denen die Nachfrage das Angebot voraussichtlich übersteigen wird.
  • Sie haben eine technisch versierte Nutzerbasis.
  • Ihre Produkte sind bekanntermaßen ein beliebtes Ziel für Wiederverkäufer.

Maßnahmen ergreifen

Szenario 1 – Der API-Endpunkt verwendet den dasselbe Domain als die Website, die Sie schützen möchten.

Beispiel

Geschützte Domainhttps://tickets.example.com

API-Endpunkthttps://tickets.example.com/v1/api

Voraussetzung

Sie sollten Ihre Website bereits mithilfe einer unserer CDN- oder serverseitigen Integrationsoptionen in CrowdHandler integriert haben.

CrowdHandler – Optionen zum Schutz von Räumen

Alle URLs

Es sind keine weiteren Maßnahmen erforderlich

URLs, die regulären Ausdrücken entsprechen

  • Die Seite(n), auf der/denen Endnutzer das begehrte Produkt in den Warenkorb legen, sollte(n) geschützt sein.
  • Die API-Route, über die das begehrte Produkt in den Warenkorb gelegt werden kann, sollte geschützt werden.

Überlegungen

Meine API-URL-Routen sind generisch

Passen Sie Ihre API-URL-Routen so an, dass sie die Produkt-ID oder den Slug als Parameter im Abfrage-String enthalten.

https://tickets.example.com/v1/api/baskethttps://tickets.example.com/v1/api/basket?id=64398

Dies führt zu Raumzuordnungen durch den CrowdHandler.

Spoofing verhindern

Stellen Sie in Ihrer API sicher, dass die in der API-URL enthaltene Produkt-ID oder der Slug mit der Produkt-ID oder dem Slug in der Nutzlast übereinstimmt. Ohne diese zusätzliche Schutzebene kann die Produkt-ID oder der Slug im Abfrage-String geändert werden, um Ihre CrowdHandler-Raumkonfiguration zu umgehen.

Szenario 2 – Der API-Endpunkt verwendet einen anders Domain der Website, die Sie schützen möchten.

Beispiel

Geschützte Domainhttps://tickets.example.com

API-Endpunkthttps://datasource.com/v1/api

CrowdHandler – Raumkonfiguration

  1. Konfigurieren Sie Ihre CrowdHandler-Räume so, dass die Website-Domain (https://tickets.example.com) geschützt wird, NICHT die API-Domain.
  2. Die Seite(n), auf der/denen Endnutzer das begehrte Produkt in den Warenkorb legen, sollte(n) geschützt sein.
  3. Die Raumkonfiguration sollte ausschließlich mit den URLs Ihrer geschützten Domain übereinstimmen.

Umsetzungsschritte

API-Anfragen bearbeiten – Nutzdaten

Fügen Sie der Nutzlast Ihrer API-Route „In den Warenkorb“ zwei zusätzliche Felder hinzu. Schlüssel: sourceURL Wert: location.href (die URL der geschützten Seite, von der aus der API-Aufruf erfolgt) Schlüssel: chToken Wert: CrowdHandler-Token (wird je nach Integrationsart aus dem Cookie oder dem lokalen Speicher abgerufen).

Überprüfen Sie die Anfrage serverseitig.

const urlParts = new URL(params.sourceURL);
const token = params.chToken;

const crowdhandler = require('crowdhandler-sdk');

  const mockRequest = {
    getHost: () => urlParts.host,
    getPath: () => urlParts.pathname,
    getCookies: () => `crowdhandler=${token}`
  };

  const { gatekeeper } = crowdhandler.init({
    publicKey: 'your-public-key',
    request: mockRequest,
    response: {}, // Empty object is fine for validation only
  });

  const result = await gatekeeper.validateRequest();
  // ✅ This works!
  // result.promoted = true/false
  // Reject if false ❌
  // result.error = { message, statusCode, code } (if error occurred)