
هناك العديد من الطرق لبناء المصادقة في منتج يعتمد على API مثل SparkPost، والطريقة التي اخترناها في وقت مبكر هي استخدام مفاتيح API. حقن مفتاح API الخاص بك كعنوان تفويض خام أو عبر HTTP Basic Auth القياسي يجعل من السهل جدًا استخدام واجهات برمجة التطبيقات الخاصة بنا. تعتبر مفاتيح API مثل هذه معيارًا شائعًا لخدمات الويب، ولكن ما مدى أمان هذا النظام؟
هناك العديد من الطرق لبناء التحقق من الهوية في منتج API-الأول مثل SparkPost، والطريقة التي اخترناها مبكرًا هي استخدام مفاتيح API. جعل إدخال مفتاح API الخاص بك كرأس تفويض خام أو عبر HTTP Basic Auth القياسي استخدام واجهات برمجة التطبيقات الخاصة بنا أمرًا سهلاً للغاية. هذه المفاتيح API شائعة كمعيار للخدمات الويب، ولكن ما مدى أمان هذا النظام؟
المخاطر
عند استخدام أي خدمة ويب، إذا حصل مهاجم على مفتاح API الخاص بك، يمكنه التصرف نيابة عنك، وفعل أشياء مثل (في حالتنا):
إرسال بريدهم الإلكتروني مجانًا عبر حسابك
تحميل قائمة المستلمين الخاصة بك وتزويدهم بمرسلي البريد المزعج (إذا لم يكونوا هم أنفسهم مرسلين للبريد المزعج)
تحرير نماذجك لحقن روابط تصيد
إرسال بريد مزعج أو تصيد نيابةً عنك
أي من هذه النتائج يمكن أن تكون ضارة جدًا بسمعتك وبعملك، وفي حالة التصيد يمكن أن تتسبب في أضرار مباشرة لمستخدمي النهائيين. هذا هو السبب في أنه من المهم للغاية التأكد من عدم تمكن أي شخص من اكتشاف مفتاح API الخاص بك.
الاحتمالات
القائمة البيضاء لعناوين IP للمساعدة
عندما تنشئ مفتاح API، يمكنك الآن تحديد قائمة بـ IPs المصرح لها باستخدام هذا المفتاح. يمكنك تحديد عدة IP، وكذلك كتل IP، باستخدام ترميز CIDR، لذلك لا يتعين عليك إدراج الخوادم الخاصة بك بشكل فردي. عند استخدام مفتاح API، سواء بالنسبة لـ REST APIs أو SMTP، سنقوم بمطابقة IP المتصل مع هذه القائمة للسماح أو رفض الوصول.
مع هذه الميزة، حتى إذا تم العثور على مفتاح API الخاص بك أو سرقته، فإن خوادمك فقط ستكون قادرة على استخدامه. نظرًا للمخاطر وسهولة إعدادها، نوصي بشدة جميع عملائنا باستخدام هذه الميزة.
الكلمات الأخيرة
بعض التوصيات الشخصية حول الأمان:
لا تحتفظ بمفاتيح API الخاصة بك في الكود. هناك العديد من الفوائد في الاحتفاظ بها كمتغيرات بيئية، كما تفعل Heroku
يمكنك إنشاء عدد غير محدود من مفاتيح API، ومن الأفضل للأمان تقسيم المسؤوليات بين عدة مفاتيح API بدلاً من استخدام مفتاح متعدد الاستخدامات. سيسمح لك هذا أيضًا بامتلاك قوائم بيضاء مختلفة لكل مفتاح، لتحقيق فصل أفضل للاهتمامات
إذا كنت تعمل مع أطراف ثالثة، لا تشارك مفتاح API الخاص بك بل قم بإنشاء مفتاح جديد لهم، مع منح الصلاحيات اللازمة فقط، وربطه بعناوين IP الخاصة بهم
نظرًا لأن مفاتيح API لا يمكن إنشاؤها إلا عبر واجهة المستخدم، فإن تفعيل المصادقة الثنائية في حسابك على SparkPost هو أمر ضروري ويستغرق فقط دقيقتين