सामग्री पर जाएँ

ब्लॉग

Node.js और MySQL परियोजनाओं में API को सुरक्षित करना: सर्वोत्तम अभ्यास और कोड उदाहरण

Node.js और MySQL में API सुरक्षा के लिए सर्वोत्तम अभ्यास

  • 3 मिनट में पढ़ें
  • Updated
इस पृष्ठ पर

Node.js और MySQL परियोजनाओं में API को सुरक्षित करनाक्लाइंटब्राउज़र/ऐपTLSHTTPS1.3दरलिमिटरDDoSसुरक्षाJWTसत्यापित करेंRBACजॉय/ज़ोड✅SQLपरमतैयारविवरणपरत 2परत 3परत 4परत 5सभी ट्रैफ़िक को एन्क्रिप्ट करता हैक्रूरको रोकता हैबलपूर्वक आक्रमण करता हैकी पहचान सत्यापित करता हैको रोकता हैSQL इंजेक्शन

को रोकता हैAPI Security Diagram

APIs आधुनिक वेब और मोबाइल एप्लिकेशन की रीढ़ हैं। Node.js और MySQL के साथ API का निर्माण करते समय, सुरक्षा सर्वोच्च प्राथमिकता होनी चाहिए। यह मार्गदर्शिका आपके API को सुरक्षित करने में मदद करने के लिए आवश्यक सर्वोत्तम प्रथाओं और कोड उदाहरणों को शामिल करती है।

API सुरक्षा वास्तुकला

API Security Architecture

यह आरेख गेटवे, WAF, प्रमाणीकरण और डेटाबेस सुरक्षा सहित API सुरक्षा के लिए एक स्तरित दृष्टिकोण दिखाता है।

API गेटवे और WAF

API Gateway and WAF

सुरक्षा को केंद्रीकृत करने, दर सीमित करने और सत्यापन का अनुरोध करने के लिए API गेटवे और वेब एप्लिकेशन फ़ायरवॉल (WAF) का उपयोग करें। यह आपके Node.js ऐप तक पहुंचने से पहले दुर्भावनापूर्ण ट्रैफ़िक को रोकने में मदद करता है।

उपयोगकर्ता से DB प्रवाह

User to DB Flow

यह आरेख प्रत्येक चरण पर प्रमाणीकरण और प्राधिकरण जांच के साथ उपयोगकर्ता से डेटाबेस तक सुरक्षित प्रवाह दिखाता है।

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टूटा हुआ प्रामाणिककमजोर क्रेडेंशियलJWT + MFA + bcryptटोकन रोटेशन और amp; हैशिंगSSRFसे बचनाडिफ़ॉल्ट सेटिंग्ससुरक्षा हार्डनिंग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के साथ हैश करें।
  • रहस्यों (डीबी क्रेडेंशियल्स, जेडब्ल्यूटी रहस्य) को पर्यावरण चर में संग्रहीत करें, कोड में नहीं।

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.