مواد پر جائیں

بلاگ

Node.js اور MySQL پروجیکٹس میں API کو محفوظ کرنا: بہترین طریقہ کار اور کوڈ کی مثالیں

Node.js اور MySQL میں API سیکیورٹی کے لیے بہترین طریقے

  • 3 منٹ کی پڑھائی
  • Updated

Node.js اور MySQL پروجیکٹس میں API کو محفوظ کرنا

API سیکیورٹی لیئرزXTAG15 XTAG15 کلائنٹبراؤزر/ایپTLSHTTPS1.3🔒Rate mi XTDDoSتحفظ🛡️AuthJWTXTAG51 49X کی توثیق کریںان پٹتوثیقسینیٹائزجوئی/زوڈ✅PR پیراگرافتیار شدہبیانات🗃️MySQLڈیٹا بیسگہرائی میں XTAG8 پرت کی کوئی ایک XXTAG8 پرت کو روکنا نہیں ہے: ہر ایک XTAG8 پرت کی XTAG8 پرت کو روکتا ہے کافی — سیکیورٹی کے لیے ضروری ہے کہ تمام پرتیں ایک ساتھ کام کریںتمام ٹریفکبلاکس بروٹفورس حملےشناخت کی تصدیق کرتا ہےTAG11SSTAG1TAG1116TAG117X کو روکتا ہے / انجیکشنSQL انجیکشن
کو روکتا ہےAPI Security Diagram

APIs جدید ویب اور موبائل ایپلیکیشنز کی ریڑھ کی ہڈی ہیں۔ Node.js اور MySQL کے ساتھ APIs بناتے وقت، سیکیورٹی کو اولین ترجیح ہونی چاہیے۔ یہ گائیڈ ضروری بہترین طریقوں اور کوڈ کی مثالوں کا احاطہ کرتا ہے تاکہ آپ کو اپنے API کو محفوظ کرنے میں مدد ملے۔

API سیکیورٹی آرکیٹیکچر

API Security Architecture

یہ خاکہ API سیکیورٹی کے لیے ایک تہہ دار نقطہ نظر کو ظاہر کرتا ہے، بشمول گیٹ وے، WAF، تصدیق، اور ڈیٹا بیس کی حفاظت۔

API گیٹ وے اور WAF

API Gateway and WAF

API گیٹ وے اور ویب ایپلیکیشن فائر وال (WAF) کو سیکورٹی کو مرکزی بنانے، شرح کو محدود کرنے، اور توثیق کی درخواست کرنے کے لیے استعمال کریں۔ یہ آپ کے Node.js ایپ تک پہنچنے سے پہلے نقصان دہ ٹریفک کو روکنے میں مدد کرتا ہے۔

صارف سے DB فلو

User to DB Flow

یہ خاکہ صارف سے ڈیٹا بیس تک محفوظ بہاؤ کو ظاہر کرتا ہے، ہر قدم پر تصدیق اور اجازت کی جانچ کے ساتھ۔

1. HTTPS ہر جگہ

استعمال کریں۔

ٹرانزٹ میں ڈیٹا کو انکرپٹ کرنے کے لیے ہمیشہ HTTPS پر اپنے API کو پیش کریں۔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 انجکشن کو روکیں دفاعSQL انجکشننقصان دہ سوالاتپیرامیٹرائزڈ سوالاتتیار بیانات اور ORMBroken Authکمزور اسنادJWT + MFA + bcryptٹوکن گردش & ہیشنگXSSاسکرپٹ انجیکشنان پٹ سینیٹائزیشنCSP ہیڈر & EscapeingSSRFاندرونی رسائیURL اجازت یافتہنیٹ ورک سیگمنٹیشن223X کی ترتیبڈیفالٹ سیٹنگزسیکیورٹی سختیHelmet.js & آڈٹہر خطرے کا دفاع ہوتا ہے — مکمل تحفظ کے لیے تمام تہوں کو لاگو کریںOWASP ٹاپ 10 ویب ایپلیکیشن سیکیورٹی رسکس کی بنیاد پر

SQL انجیکشن کو روکنے کے لیے ہمیشہ پیرامیٹرائزڈ سوالات یا ORM لائبریریز (جیسے Sequelize یا Knex) استعمال کریں۔

// Using mysql2 with placeholders
const [rows] = await db.execute('SELECT * FROM users WHERE id = ?', [userId]);

4. ان پٹ کی تصدیق اور صفائی

express-validatorیاjoiجیسی لائبریریوں کا استعمال کرتے ہوئے تمام آنے والے ڈیٹا کی توثیق اور صفائی کریں۔

5. محفوظ حساس ڈیٹا

  • کبھی بھی سادہ متن والے پاس ورڈز کو اسٹور نہ کریں۔ ہمیشہbcryptکے ساتھ ہیش کریں۔
  • اسٹور کے راز (DB اسناد، JWT راز) ماحولیاتی متغیرات میں، کوڈ میں نہیں۔

6. شرح کی حد بندی اور تھروٹلنگ

express-rate-limitجیسے ریٹ محدود کرنے والے مڈل ویئر کا استعمال کرتے ہوئے اپنے API کو بروٹ فورس اور DDoS حملوں سے محفوظ رکھیں۔

7. لاگنگ اور مانیٹرنگ

تمام تصدیقی کوششوں اور غلطیوں کو لاگ کریں۔ مشکوک سرگرمی کا پتہ لگانے کے لیے مانیٹرنگ ٹولز کا استعمال کریں۔

8. انحصار کو اپ ڈیٹ رکھیں

باقاعدگی سے Node.js، MySQL، اور تمام انحصارات کو معلوم کمزوریوں کو درست کرنے کے لیے اپ ڈیٹ کریں۔

مزید پڑھنا

Related reading. For an explainable edge Web Application Firewall on TenthMatrix WSL Proxy, see the WAF blog, the technical article, or wslproxy.org.