السلام عليكم
هل يمكن جعل django api تعمل في تطبيقات محددة
بالطبع، معظم التطبيقات تستعمل ذلك، هذه مكتبة لـ django rest framework تجعل إنشاء api keys سهل جداً في django
بامكانك اخفاء كلمة مرور في الكود المصدري الخاص بتطبيقك.
هذا لن يمنع اي شخص من ايجاد كلمة المرور واستخدام الAPI. لكنك سوف تجعله صعب جداً.
بامكان اي شخص ان يجد كلمة المرور من خلال فك تطبيقك.
قم باستخدام proguard لكي لا يتمكن اي شخص من فهم كودك المصدري اذا قام بفك تطبيقك. ولا تضع كلمة المرور بشكل مباشر في متغير. قم بتعقيد الموضوع مثلاً استخدم دالة مكتوبة بلغة C واجعلها تقوم بارجاع كلمة المرور, بامكانك تسميتها اسم يوحي بانها مسؤولة عن شيء ثاني مثل تعديل الصور. وقم بوضع كود معقد بدون اي هدف لكي تشتت تفكير الهاكر.
أنا لدي تطبيق اندرويد ، لوحة التحكم وقاعدة البيانات تعمل ب django وpython
المشكلة التي لدي هي أن روابط API الخاص بها قابلة للوصول
يعني أي شخص لديه رابط API يمكنه استعماله
أنا أريد أن يعمل في تطبيقاتي فقط
هناك أكثر من طريقة،
أبحث عن JWT Tokens
كون خوارزمية سرية خاصة بك
أضف parameter لكل الـrequests سمه token مثلاُ
الـtoken تحتوي على رمز تكونه خوارزمية سرية، بناءاً على عوامل متغير كالوقت مثلاً أو بقية الـparameters
مثلاً
md5(unixtime- digit + 534)
والسيرفر يقوم بتوليد الرمز بنفس الخوارزمية ومن ثم يقارن النتيجة مع ما استلمه مع الـrequest
ثم تأكد من مناسبتها لغرضك. قد يكفيك توليد رمز عشوائي بطريقة آمنة (كما تفعل المكتبة التي ذكرها mr_student). يوجد من ينصح بعدم استخدام JWT.
هذا مشابه لفكرة الـOne Time Password.
2.1. النصيحة الجارية هي أن لا تستخدم خوارزمية كتبتها بنفسك في مجال الأمان. الخوارزميات المعتمدة والمختبرة من قبل خبراء أضمن. ابحث عن OTP والمكتبات التي توفرها.
2.2. لا أعرف هل OTP مناسبة لأن تستخدم كـAPI Key أو لا، وإن كانت مناسبة هل تضيف أي حماية أو لا. إن استخدمتها ستحتاج لمفتاح يعرفه السيرفر والتطبيق لتمرره للخوارزمية. هذا المفتاح يعادل الـAPI Key لأنه أ) معروف للسيرفر والتطبيق، ب) يستطيع سارقه تنفيذ طلبات إلا لو تغير (بإضافة الـAPI Key أو توليد OTP). الفرق أنك سترسل OTP مختلف كل فترة.
التعليقات