Podepsané URL adresy OG obrázků
Podepsaná URL adresa OG obrázku je adresa, jejíž parametry jsou chráněny podpisem HMAC-SHA256, takže pouze vy (a kód, který drží váš tajný klíč) můžete vyžadovat vykreslení, která se započítávají do vašeho měsíčního limitu. FastOG podepisuje obsah — identické parametry vždy vytvoří identickou, kešovanou URL adresu — což chrání váš limit a zároveň činí kešování deterministickým.
Proč podepisovat URL adresy OG obrázků
Koncový bod pro OG obrázky, který vykresluje libovolný text z neověřené URL adresy, je bezplatná renderovací farma, kterou může využít kdokoli. U služby založené na předplatném to znamená, že kdokoli by mohl spálit váš kredit. Podepsání každé URL adresy tajemstvím, které zná pouze váš backend, zablokuje každý neoprávněný požadavek při prvním (nekešovaném) načtení, zatímco legitimní, kešované URL adresy nadále fungují.
Jak funguje podepisování obsahu
- Sestavíte kanonický řetězec dotazu: každý parametr (kromě podpisu), seřazený a zakódovaný podle RFC-3986.
- Vypočítáte
HMAC_SHA256(secret, "GET/api/v1/og\n" + canonical). - Připojíte podpis jako parametr
s.
Zpráva neobsahuje časové razítko, takže URL je stabilní: stejné parametry → stejná URL → stejná položka v mezipaměti.
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
Kompromis, který lidé chápou špatně
| Obava | Realita |
|---|---|
| „Podepsaná URL vyprší" | Ne — je podepsaná podle obsahu a platí, dokud neotočíte tajný klíč |
| „Upravená URL rozbije cache" | Ne — neplatný s dostane 401 jen při cache miss; cachované obrázky se vrátí tak jako tak |
| „K bezpečnosti potřebuji časová razítka" | Podepisování obsahu stačí k zastavení zneužití kvót; žádné hodiny nejsou potřeba |
Jednosouborové SDK
FastOG dodává jeden soubor pro podepisování (signer) pro každý jazyk (bez závislostí), takže nikdy nemusíte ručně implementovat HMAC. Stáhněte si ho ze stránky SDK nebo curl přímo z CDN:
curl -O https://fastog.com/sdk/node.js
FAQ
Vyprší někdy podepsané URL adresy?
Ve výchozím nastavení ne – zůstávají platné, dokud neotočíte HMAC tajemství klíče API. Jsou podepsané obsahem, ne časem.
Může někdo jiný vyčerpat můj limit tím, že uhodne URL adresu?
Ne. K vytvoření platného podpisu potřebuje vaše HMAC tajemství; bez něj se neuložené rendery vrátí s 401 invalid_signature.
Podepisuji URL adresu v prohlížeči?
Ne. Podepisujte na straně serveru (nebo v edge funkci), kde se tajemství nikdy nedostane ke klientovi. Vyrenderovaná URL adresa obrázku je bezpečné umístit do vašeho veřejného <head>.