Temat

Podpisane adresy URL obrazów OG

Podpisany adres URL obrazu OG to adres, którego parametry są chronione podpisem HMAC-SHA256, dzięki czemu tylko Ty (oraz kod posiadający Twój sekret) możesz żądać renderów wliczanych do Twojego miesięcznego limitu. FastOG podpisuje treść — identyczne parametry zawsze generują identyczny, zbuforowany adres URL — co zarówno chroni Twój limit, jak i czyni buforowanie deterministycznym.

Dlaczego warto podpisywać adresy URL obrazów OG

Endpoint obrazów OG, który renderuje dowolny tekst z nieuwierzytelnionego adresu URL, to darmowa farma renderowania, z której każdy może korzystać. W usłudze opartej na subskrypcji oznacza to, że każdy mógłby spalać Twój limit. Podpisywanie każdego adresu URL tajnym kluczem znanym tylko Twojemu backendowi blokuje każde nieautoryzowane żądanie przy pierwszym (niebuforowanym) pobraniu, podczas gdy legalne, buforowane adresy URL działają nadal.

Jak działa podpisywanie treści

  1. Budujesz kanoniczny ciąg zapytania: każdy parametr (z wyjątkiem podpisu), posortowany i zakodowany zgodnie z RFC-3986.
  2. Obliczasz HMAC_SHA256(secret, "GET/api/v1/og\n" + canonical).
  3. Dołączasz podpis jako parametr s.

Wiadomość nie zawiera znacznika czasu, więc URL jest stabilny: te same parametry → ten sam URL → ten sam wpis w pamięci podręcznej.

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, który ludzie źle rozumieją

Obawa Rzeczywistość
„Podpisany URL wygaśnie” Nie — jest podpisany pod kątem treści i ważny do czasu rotacji sekretu
„Zmodyfikowany URL psuje cache” Nie — fałszywy s dostaje tylko 401 przy braku trafienia w cache; obrazy z cache i tak się zwracają
„Potrzebuję znaczników czasu dla bezpieczeństwa” Podpisywanie treści wystarczy, aby powstrzymać nadużycia limitu; zegar nie jest potrzebny

Jednoplikowe SDK

FastOG dostarcza pojedynczy plik signera (signer) dla każdego języka (zero zależności), dzięki czemu nigdy nie musisz ręcznie implementować HMAC. Pobierz go ze strony SDK lub curl bezpośrednio z CDN:

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

FAQ

Czy podpisane adresy URL kiedykolwiek wygasają?

Nie domyślnie — pozostają ważne, dopóki nie zmienisz sekretu HMAC klucza API. Podpisane treściowo, a nie czasowo.

Czy ktoś inny może wykorzystać mój limit, zgadując adres URL?

Nie. Potrzebuje twojego sekretu HMAC, aby utworzyć prawidłowy podpis; bez niego niebuforowane renderowania zwracają 401 invalid_signature.

Czy podpisuję adres URL w przeglądarce?

Nie. Podpisuj po stronie serwera (lub w funkcji brzegowej), gdzie sekret nigdy nie trafia do klienta. Wyrenderowany adres URL obrazu jest bezpieczny do umieszczenia w publicznym <head>.

Wypróbuj za darmo — bez rejestracji

Podglądaj i testuj dynamiczne obrazy OG w kilka sekund.

Otwórz darmowy tester obrazów OG

A BeCaSimulations site