تأمين APIs في مشاريع Node.js وMySQL
APIs هي العمود الفقري لتطبيقات الويب والهواتف المحمولة الحديثة. عند إنشاء API باستخدام Node.js وMySQL، يجب أن يكون الأمان أولوية قصوى. يغطي هذا الدليل أفضل الممارسات الأساسية وأمثلة التعليمات البرمجية لمساعدتك في تأمين أجهزة API الخاصة بك.
API بنية الأمان
يوضح هذا الرسم البياني نهجًا متعدد الطبقات لأمن API، بما في ذلك البوابة وWAF والمصادقة وحماية قاعدة البيانات.
بوابةAPI وWAF
استخدم بوابة API وجدار حماية تطبيقات الويب (WAF) لمركزية الأمان وتحديد المعدل وطلب التحقق من الصحة. يساعد هذا في منع حركة المرور الضارة قبل أن تصل إلى تطبيق Node.js الخاص بك.
مستخدملتدفق قاعدة البيانات
يوضح هذا الرسم التخطيطي التدفق الآمن من المستخدم إلى قاعدة البيانات، مع عمليات التحقق من المصادقة والترخيص في كل خطوة.
1. استخدم HTTPS في كل مكان
قم دائمًا بخدمة API عبر HTTPS لتشفير البيانات أثناء النقل. استخدمletsencryptأو شهادة SSL التجارية.
2. المصادقة والترخيص
- JWT (رموز الويب JSON):استخدم JWT للمصادقة عديمة الحالة. إصدار الرموز عند تسجيل الدخول والتحقق منها في كل طلب.
- التحكم في الوصول المستند إلى الأدوار (RBAC):يقيد الوصول إلى نقاط النهاية الحساسة بناءً على أدوار المستخدم.
// Example: JWT middleware
const jwt = require('jsonwebtoken');
function authenticateToken(req, res, next) {
const token = req.headers['authorization']?.split(' ')[1];
if (!token) return res.sendStatus(401);
jwt.verify(token, process.env.JWT_SECRET, (err, user) => {
if (err) return res.sendStatus(403);
req.user = user;
next();
});
}3. منع حقن SQL
استخدم دائمًا الاستعلامات ذات المعلمات أو مكتبات ORM (مثل Sequelize أو Knex) لمنع حقن SQL.
// Using mysql2 with placeholders
const [rows] = await db.execute('SELECT * FROM users WHERE id = ?', [userId]);4. التحقق من صحة الإدخال والتعقيم
التحقق من صحة جميع البيانات الواردة وتعقيمها باستخدام مكتبات مثلexpress-validatorأوjoi.
5. تأمين البيانات الحساسة
- لا تقم مطلقًا بتخزين كلمات المرور ذات النص العادي. قم دائمًا بالتجزئة باستخدام
bcrypt. - قم بتخزين الأسرار (بيانات اعتماد قاعدة البيانات، أسرار JWT) في متغيرات البيئة، وليس في التعليمات البرمجية.
6. تحديد المعدل والاختناق
قم بحماية جهاز API الخاص بك من هجمات القوة الغاشمة وهجمات DDoS باستخدام البرامج الوسيطة التي تحدد المعدل مثلexpress-rate-limit.
7. التسجيل والمراقبة
قم بتسجيل كافة محاولات المصادقة والأخطاء. استخدم أدوات المراقبة للكشف عن الأنشطة المشبوهة.
8. حافظ على تحديث التبعيات
قم بتحديث Node.js وMySQL وجميع التبعيات بانتظام لتصحيح نقاط الضعف المعروفة.