Signerade OG-bild-URL:er
En signerad OG-bild-URL är en URL vars parametrar skyddas med en HMAC-SHA256-signatur, så att endast du (och koden som innehar din hemlighet) kan begära renderingar som räknas mot din månadskvot. FastOG signerar innehållet — identiska parametrar ger alltid identiska, cachade URL:er — vilket både skyddar din kvot och gör cachelagringen deterministisk.
Varför signera OG-bild-URL:er
En OG-bild-endpoint som renderar godtycklig text från en oautentiserad URL är en gratis renderingsfarm som vem som helst kan använda. På en prenumerationsbaserad tjänst innebär det att vem som helst kan förbruka ditt saldo. Genom att signera varje URL med en hemlighet som bara din backend känner till blockeras varje obehörig begäran vid den första (icke-cachade) hämtningen, medan legitima, cachade URL:er fortsätter att fungera.
Så fungerar innehållssignering
- Du bygger den kanoniska frågesträngen: varje parameter (förutom signaturen), sorterad och RFC-3986-kodad.
- Du beräknar
HMAC_SHA256(secret, "GET/api/v1/og\n" + canonical). - Du lägger till signaturen som parametern
s.
Meddelandet innehåller ingen tidsstämpel, så webbadressen är stabil: samma parametrar → samma webbadress → samma cache-post.
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
Vanliga missförstånd kring avvägningen
| Farhåga | Verklighet |
|---|---|
| "En signerad URL löper ut" | Nej — den är innehållssignerad och giltig tills du roterar hemligheten |
| "En manipulerad URL bryter cachen" | Nej — en ogiltig s får bara 401 vid en cache miss; cachade bilder returneras ändå |
| "Jag behöver tidsstämplar för säkerhet" | Innehållssignering räcker för att stoppa kvotmissbruk; ingen klocka behövs |
Enfiliga SDK:er
FastOG levererar en enda signeringsfil per språk (utan beroenden) så att du aldrig behöver skriva HMAC för hand. Ladda ner från SDK-sidan eller curl direkt från CDN:n:
curl -O https://fastog.com/sdk/node.js
FAQ
Går signerade URL:er någonsin ut?
Inte som standard – de förblir giltiga tills du roterar API-nyckelns HMAC-hemlighet. Innehållssignerade, inte tidssignerade.
Kan någon annan förbruka min kvot genom att gissa en URL?
Nej. De behöver din HMAC-hemlighet för att skapa en giltig signatur; utan den returnerar ocachade renderingar 401 invalid_signature.
Signerar jag URL:en i webbläsaren?
Nej. Signera server-side (eller i en edge-funktion) där hemligheten aldrig skickas till klienten. Den renderade bild-URL:en är säker att placera i din publika <head>.