روابط OG-Bild الموقّعة
رابط OG-Bild الموقّع هو رابط تكون معاملاته محمية بتوقيع HMAC-SHA256، بحيث لا يمكن إلا لك (وللكود الذي يحمل سرّك) طلب عمليات العرض التي تُحتسب ضمن حصتك الشهرية. يوقّع FastOG المحتوى — فالمعاملات المتطابقة تنتج دائمًا رابطًا متطابقًا ومخزّنًا مؤقتًا — مما يحمي حصتك ويجعل التخزين المؤقت حتميًا.
لماذا توقيع روابط صور OG
إن نقطة نهاية صورة OG التي تعرض نصًا عشوائيًا من رابط غير مصادق عليه تمثل مزرعة عرض مجانية يمكن لأي شخص استغلالها. في خدمة قائمة على الاشتراك،这意味着 أي شخص يمكنه استنزاف رصيدك. توقيع كل رابط بسر لا يعرفه سوى خادمك الخلفي يحجب كل طلب غير مصرح به عند أول جلب (غير مخزّن مؤقتًا)، بينما تستمر الروابط المشروعة والمخزّنة مؤقتًا في العمل.
كيف تعمل توقيعات المحتوى
- تقوم ببناء سلسلة الاستعلام الأساسية (canonical query string): كل معامل (باستثناء التوقيع)، مرتبة ومشفّرة وفق RFC-3986.
- تقوم بحساب
HMAC_SHA256(secret, "GET/api/v1/og\n" + canonical). - تقوم بإلحاق التوقيع كمعامل
s.
لا تتضمن الرسالة طابعًا زمنيًا، لذا يكون الرابط ثابتًا: نفس المعاملات → نفس الرابط → نفس إدخال التخزين المؤقت.
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
المفاضلة التي يخطئ فيها الكثيرون
| الاهتمام | الواقع |
|---|---|
| "الرابط الموقّع سينتهي صلاحيته" | لا — إنه موقّع على المحتوى، ويظل صالحًا حتى تقوم بتدوير السر |
| "الرابط المعدّل يكسر التخزين المؤقت" | لا — s الزائف لا يحصل إلا على استجابة 401 عند غياب التخزين المؤقت؛ أما الصور المخزّنة فتُعاد على أي حال |
| "أحتاج طوابع زمنية للأمان" | التوقيع على المحتوى كافٍ لوقف إساءة استخدام الحصص؛ لا حاجة لساعة |
حزم SDK بملف واحد
توفر FastOG ملف توقيع واحدًا لكل لغة (بدون أي تبعيات) بحيث لا تضطر أبدًا إلى كتابة HMAC يدويًا. يمكنك التنزيل من صفحة SDK أو curl مباشرةً من CDN:
curl -O https://fastog.com/sdk/node.js
الأسئلة الشائعة
هل تنتهي صلاحية الروابط الموقّعة (signed URLs)؟
ليس افتراضيًا — تظل صالحة حتى تقوم بتدوير سر HMAC الخاص بمفتاح API. التوقيع يعتمد على المحتوى، وليس على الوقت.
هل يمكن لشخص آخر استهلاك حصتي بتخمين رابط؟
لا. يحتاج إلى سر HMAC الخاص بك لتكوين توقيع صالح؛ وبدونه، تعيد العروض غير المخزنة 401 invalid_signature.
هل أوقّع الرابط في المتصفح؟
لا. وقّع من جانب الخادم (أو في دالة حافة (edge function)) حيث لا يُرسل السر أبدًا إلى العميل. رابط الصورة المعروضة آمن لوضعه في <head> العام الخاص بك.