Argomento

URL delle immagini OG firmate

Un URL di immagine OG firmato è un URL i cui parametri sono protetti da una firma HMAC-SHA256, così solo tu (e il codice che detiene il tuo segreto) puoi richiedere rendering che contano contro la tua quota mensile. FastOG firma il contenuto: parametri identici producono sempre lo stesso URL identico e memorizzato nella cache, il che protegge la tua quota e rende la cache deterministica.

Perché firmare gli URL delle immagini OG

Un endpoint per le immagini OG che genera testo arbitrario da un URL non autenticato è una sorta di render farm gratuita che chiunque può sfruttare. Su un servizio a pagamento, questo significa che chiunque potrebbe consumare il tuo credito. Firmare ogni URL con un segreto noto solo al tuo backend blocca ogni richiesta non autorizzata al primo fetch (non in cache), mentre gli URL legittimi e memorizzati nella cache continuano a funzionare.

Come funziona la firma dei contenuti

  1. Costruisci la stringa di query canonica: ogni parametro (tranne la firma), ordinato e codificato secondo RFC-3986.
  2. Calcoli HMAC_SHA256(secret, "GET/api/v1/og\n" + canonical).
  3. Aggiungi la firma come parametro s.

Il messaggio non include un timestamp, quindi l'URL è stabile: stessi parametri → stesso URL → stessa voce di 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

Il compromesso che la gente fraintende

Preoccupazione Realtà
"Un URL firmato scadrà" No — è firmato sul contenuto, valido finché non ruoti il segreto
"Un URL manomesso rompe la cache" No — un s falso riceve solo un 401 su un miss della cache; le immagini in cache vengono comunque restituite
"Mi servono timestamp per la sicurezza" La firma sul contenuto basta a fermare l'abuso delle quote; non serve un orologio

SDK in un unico file

FastOG fornisce un singolo file signer per linguaggio (zero dipendenze), così non devi mai implementare HMAC a mano. Scaricalo dalla pagina SDK o curl direttamente dalla CDN:

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

FAQ

Gli URL firmati scadono mai?

Non di default: restano validi finché non ruoti il segreto HMAC della chiave API. Firmati per contenuto, non per tempo.

Qualcun altro può consumare la mia quota indovinando un URL?

No. Serve il tuo segreto HMAC per formare una firma valida; senza, i render non memorizzati nella cache restituiscono 401 invalid_signature.

Firmo l'URL nel browser?

No. Firma lato server (o in una edge function) dove il segreto non arriva mai al client. L'URL dell'immagine renderizzata è sicuro da inserire nel tuo <head> pubblico.

Provalo gratis — nessuna registrazione richiesta

Anteprima e test delle immagini OG dinamiche in pochi secondi.

Apri il tester gratuito di immagini OG

A BeCaSimulations site