Sujet

URL d’image OG signées

Une URL d’image OG signée est une URL dont les paramètres sont protégés par une signature HMAC-SHA256, de sorte que seuls vous (et le code détenant votre secret) pouvez demander des rendus qui comptent dans votre quota mensuel. FastOG signe le contenu — des paramètres identiques produisent toujours la même URL mise en cache — ce qui protège à la fois votre quota et rend la mise en cache déterministe.

Pourquoi signer les URL d’images OG

Un endpoint d’image OG qui génère du texte arbitraire à partir d’une URL non authentifiée constitue une ferme de rendu gratuite que n’importe qui peut solliciter. Sur un service par abonnement, cela signifie que n’importe qui pourrait épuiser votre solde. Signer chaque URL avec un secret connu uniquement de votre backend bloque toute requête non autorisée dès le premier chargement (non mis en cache), tandis que les URL légitimes et mises en cache continuent de fonctionner.

Fonctionnement de la signature de contenu

  1. Vous construisez la chaîne de requête canonique : chaque paramètre (à l'exception de la signature), trié et encodé selon la RFC-3986.
  2. Vous calculez HMAC_SHA256(secret, "GET/api/v1/og\n" + canonical).
  3. Vous ajoutez la signature en tant que paramètre s.

Le message n'inclut pas d'horodatage, donc l'URL est stable : mêmes paramètres → même URL → même entrée de cache.

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

Le compromis que les gens comprennent mal

Préoccupation Réalité
« Une URL signée va expirer » Non — elle est signée par contenu, valide jusqu'à ce que vous fassiez pivoter le secret
« Une URL falsifiée casse le cache » Non — un s invalide reçoit seulement une erreur 401 lors d'un miss du cache ; les images en cache sont renvoyées de toute façon
« J'ai besoin d'horodatages pour la sécurité » La signature par contenu suffit à empêcher les abus de quota ; aucune horloge n'est nécessaire

SDK en un seul fichier

FastOG fournit un seul fichier de signature (signer) par langage (zéro dépendance), afin que vous n'ayez jamais à implémenter HMAC manuellement. Téléchargez-le depuis la page SDK ou curl directement depuis le CDN :

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

FAQ

Les URL signées expirent-elles un jour ?

Non, pas par défaut — elles restent valides jusqu'à ce que vous fassiez pivoter le secret HMAC de la clé API. Elles sont signées par contenu, et non par temps.

Quelqu'un d'autre peut-il consommer mon quota en devinant une URL ?

Non. Il lui faut votre secret HMAC pour former une signature valide ; sans cela, les rendus non mis en cache renvoient 401 invalid_signature.

Dois-je signer l'URL dans le navigateur ?

Non. Signez côté serveur (ou dans une fonction edge) où le secret n'est jamais transmis au client. L'URL de l'image rendue peut être placée en toute sécurité dans votre <head> public.

Essayez gratuitement — aucune inscription requise

Prévisualisez et testez des images OG dynamiques en quelques secondes.

Ouvrir le testeur d'images OG gratuit

A BeCaSimulations site