Thema

Signierte OG-Bild-URLs

Eine signierte OG-Bild-URL ist eine URL, deren Parameter mit einer HMAC-SHA256-Signatur geschützt sind, sodass nur Sie (und der Code, der Ihr Geheimnis enthält) Renderings anfordern können, die auf Ihr monatliches Kontingent angerechnet werden. FastOG signiert den Inhalt – identische Parameter erzeugen immer die identische, gecachte URL – was sowohl Ihr Kontingent schützt als auch das Caching deterministisch macht.

Warum Sie OG-Bild-URLs signieren sollten

Ein OG-Bild-Endpunkt, der beliebigen Text aus einer nicht authentifizierten URL rendert, ist eine kostenlose Render-Farm, die jeder nutzen kann. Bei einem abonnementbasierten Dienst bedeutet das, dass jeder Ihr Guthaben aufbrauchen könnte. Wenn Sie jede URL mit einem Geheimnis signieren, das nur Ihr Backend kennt, blockieren Sie jede unbefugte Anfrage beim ersten (nicht zwischengespeicherten) Abruf, während legitime, zwischengespeicherte URLs weiterhin funktionieren.

So funktioniert die Inhalts-Signierung

  1. Sie erstellen die kanonische Query-Zeichenfolge: jeder Parameter (außer der Signatur), sortiert und RFC-3986-kodiert.
  2. Sie berechnen HMAC_SHA256(secret, "GET/api/v1/og\n" + canonical).
  3. Sie fügen die Signatur als s-Parameter hinzu.

Die Nachricht enthält keinen Zeitstempel, daher ist die URL stabil: gleiche Parameter → gleiche URL → gleicher Cache-Eintrag.

canonical = "key=sk_...&template=default&title=Hello"
signature = HMAC-SHA256(secret, "GET/api/v1/og\n" + canonical)
url = ".../api/v1/og?key=...&template=default&title=Hello&s=" + signature

Der Kompromiss, den viele falsch verstehen

Bedenken Realität
„Eine signierte URL läuft ab" Nein — sie ist inhaltsbasiert signiert und gültig, bis Sie das Secret rotieren
„Eine manipulierte URL bricht den Cache" Nein — ein ungültiges s erhält nur bei einem Cache-Miss eine 401-Antwort; zwischengespeicherte Bilder werden trotzdem ausgeliefert
„Ich benötige Zeitstempel für die Sicherheit" Inhaltsbasierte Signierung reicht aus, um Quotenmissbrauch zu verhindern; keine Uhr erforderlich

Ein-Datei-SDKs

FastOG liefert eine einzelne Signer-Datei pro Sprache (ohne Abhängigkeiten), sodass Sie HMAC nie selbst implementieren müssen. Laden Sie sie von der SDK-Seite herunter oder curl direkt vom CDN:

bash
curl -O https://fastog.com/sdk/node.js

FAQ

Laufen signierte URLs jemals ab?

Standardmäßig nicht – sie bleiben gültig, bis Sie das HMAC-Geheimnis des API-Schlüssels rotieren. Inhalts-signiert, nicht zeit-signiert.

Kann jemand anderes mein Kontingent verbrauchen, indem er eine URL errät?

Nein. Dafür benötigt er Ihr HMAC-Geheimnis, um eine gültige Signatur zu erstellen; ohne dieses liefern ungecachte Renderings 401 invalid_signature zurück.

Signiere ich die URL im Browser?

Nein. Signieren Sie serverseitig (oder in einer Edge-Funktion), wo das Geheimnis niemals an den Client gelangt. Die gerenderte Bild-URL kann bedenkenlos in Ihren öffentlichen <head> eingefügt werden.

Kostenlos testen – keine Anmeldung erforderlich

Vorschau und Test dynamischer OG-Bilder in Sekunden.

Kostenlosen OG-Bild-Tester öffnen

A BeCaSimulations site