Tópico

URLs de Imagem OG Assinadas

Uma URL de imagem OG assinada é uma URL cujos parâmetros são protegidos com uma assinatura HMAC-SHA256, de modo que apenas você (e o código que detém o seu segredo) pode solicitar renders que contam para a sua quota mensal. A FastOG assina o conteúdo — parâmetros idênticos produzem sempre a URL idêntica e em cache — o que protege a sua quota e torna o cache determinístico.

Porque assinar os URLs das imagens OG

Um endpoint de imagem OG que renderiza texto arbitrário a partir de um URL não autenticado é uma quinta de renderização gratuita que qualquer pessoa pode usar. Num serviço baseado em subscrição, isso significa que qualquer pessoa poderia gastar o seu saldo. Assinar cada URL com um segredo que apenas o seu backend conhece bloqueia todos os pedidos não autorizados no primeiro acesso (sem cache), enquanto os URLs legítimos e em cache continuam a funcionar.

Como funciona a assinatura de conteúdo

  1. Você constrói a string de consulta canónica: todos os parâmetros (exceto a assinatura), ordenados e codificados segundo RFC-3986.
  2. Você calcula HMAC_SHA256(secret, "GET/api/v1/og\n" + canonical).
  3. Você anexa a assinatura como o parâmetro s.

A mensagem não inclui carimbo de data/hora, pelo que o URL é estável: os mesmos parâmetros → o mesmo URL → a mesma entrada 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

O compromisso que as pessoas interpretam mal

Preocupação Realidade
"Um URL assinado vai expirar" Não — é assinado por conteúdo, válido até você rodar o segredo
"Um URL adulterado quebra a cache" Não — um s inválido só recebe 401 numa falha de cache miss; as imagens em cache são devolvidas na mesma
"Preciso de timestamps para segurança" A assinatura de conteúdo é suficiente para impedir abuso de quota; não é necessário relógio

SDKs de ficheiro único

A FastOG disponibiliza um único ficheiro de assinatura (signer) por linguagem (zero dependências), para que nunca tenha de implementar HMAC manualmente. Transfira a partir da página de SDK ou curl diretamente do CDN:

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

FAQ

Os URLs assinados expiram alguma vez?

Não por predefinição — permanecem válidos até que rodeie o segredo HMAC da chave de API. Assinados por conteúdo, não por tempo.

Pode outra pessoa gastar a minha quota ao adivinhar um URL?

Não. Precisa do seu segredo HMAC para formar uma assinatura válida; sem ele, os renders não armazenados em cache devolvem 401 invalid_signature.

Assino o URL no navegador?

Não. Assine no lado do servidor (ou numa função de edge) onde o segredo nunca chega ao cliente. O URL da imagem renderizada é seguro para colocar no seu <head> público.

Experimente gratuitamente — sem necessidade de registo

Pré-visualize e teste imagens OG dinâmicas em segundos.

Abrir o Testador Gratuito de Imagens OG

A BeCaSimulations site