الأداء والتقنية

أخطاء أمنية شائعة في تطبيقات أندرويد وكيف تتفاداها

٢٠٢٦/٠٦/٢٥
٧ دقائق قراءة
الكاتب: فريق عمل PlaySwap

الأمان ليس ترفاً للتطبيقات الكبيرة فقط. تطبيق صغير بألف مستخدم قد يسرّب بيانات هؤلاء الألف بالكامل بسبب سطر واحد. والأسوأ أن جوجل تفحص التطبيقات آلياً بحثاً عن ثغرات معروفة، وقد تحجب تطبيقك حتى تعالجها.

الخطأ الأول والأشهر: تخزين مفاتيح الوصول داخل الكود. كثيرون يضعون مفتاح واجهة برمجية أو كلمة مرور قاعدة بيانات مباشرة في ملف المصدر ظناً أن أحداً لن يراها. الحقيقة أن استخراج النصوص من ملف التطبيق عملية تستغرق دقائق بأدوات مجانية متاحة للجميع. أي مفتاح داخل التطبيق يجب اعتباره معروفاً للعلن.

القاعدة الصحيحة: العمليات الحساسة تتم على الخادم، والتطبيق يستدعي الخادم. إن كان لا بد من مفتاح داخل التطبيق، فليكن مفتاحاً عاماً محدود الصلاحيات ومقيّداً بقواعد على مستوى الخادم — لا مفتاحاً يمنح صلاحية كاملة.

الخطأ الثاني: الوثوق ببيانات قادمة من التطبيق. أي قيمة يرسلها التطبيق يمكن التلاعب بها. السعر، عدد النقاط، هوية المستخدم — كلها يجب أن يعاد التحقق منها على الخادم. القاعدة الذهبية: لا تثق أبداً بما يرسله العميل، مهما كان تطبيقك محكماً.

الخطأ الثالث: اتصالات غير مشفرة. أي اتصال عبر HTTP بدلاً من HTTPS يعني أن أي شخص على نفس الشبكة يستطيع قراءة ما يمر. أندرويد يمنع هذا افتراضياً في الإصدارات الحديثة، وبعض المطورين يعطّلون الحماية للتخلص من رسالة خطأ مزعجة أثناء التطوير ثم ينسون إعادتها.

الخطأ الرابع: تخزين بيانات حساسة في مكان غير آمن على الجهاز. حفظ رمز الدخول أو كلمة المرور في تخزين عادي بنص صريح يجعلها متاحة لأي تطبيق آخر على جهاز مكسور الحماية. استخدم آليات التخزين الآمن التي يوفرها النظام لهذا الغرض تحديداً.

الخطأ الخامس: ترك سجلات التصحيح في النسخة النهائية. رسائل السجل التي تطبع رموز الدخول أو بيانات المستخدم أثناء التطوير قد تبقى في نسخة الإنتاج ويقرأها أي تطبيق مراقب. نظّف سجلاتك قبل الإصدار.

الخطأ السادس: عدم التحقق من الصلاحيات في كل مرة. المستخدم يستطيع سحب صلاحية منحها لك سابقاً من إعدادات النظام في أي لحظة. تطبيق يفترض أن الصلاحية ما زالت ممنوحة سينهار فجأة عند مستخدم لا يفهم لماذا.

أخيراً، أفضل استثمار أمني لمطور مستقل هو مراجعة بسيطة قبل كل إصدار: افحص أين تخزّن البيانات، ما الذي يخرج من التطبيق عبر الشبكة، وما الذي يمكن لمهاجم فعله لو عرف كل ما بداخل ملف التطبيق. هذه الأسئلة الثلاثة تكشف أغلب المشاكل.