ਸਮੱਗਰੀ 'ਤੇ ਜਾਓ

ਬਲੌਗ

Node.js ਅਤੇ MySQL ਪ੍ਰੋਜੈਕਟਾਂ ਵਿੱਚ API ਨੂੰ ਸੁਰੱਖਿਅਤ ਕਰਨਾ: ਵਧੀਆ ਅਭਿਆਸ ਅਤੇ ਕੋਡ ਉਦਾਹਰਨਾਂ

Node.js ਅਤੇ MySQL ਵਿੱਚ API ਸੁਰੱਖਿਆ ਲਈ ਵਧੀਆ ਅਭਿਆਸ

  • 3 ਮਿੰਟ ਦੀ ਪੜ੍ਹਤ
  • Updated

Node.js ਅਤੇ MySQL ਪ੍ਰੋਜੈਕਟਾਂ ਵਿੱਚ API ਨੂੰ ਸੁਰੱਖਿਅਤ ਕਰਨਾ

API ਸੁਰੱਖਿਆ ਪਰਤਾਂTAG15 XTAG15 ਕਲਾਈਂਟਬ੍ਰਾਊਜ਼ਰ/ਐਪTLSHTTPS1.3🔒Rate mi teterDDoSਪ੍ਰੋਟੈਕਸ਼ਨ🛡️AuthJWT39X ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ 39X PRਇਨਪੁਟਪ੍ਰਮਾਣਿਕਤਾਸੈਨੀਟਾਈਜ਼ਜੋਈ/ਜ਼ੋਡ✅PR ਪੈਰਾਤਿਆਰਸਟੇਟਮੈਂਟਾਂ🗃️MySQLਡਾਟਾਬੇਸਡੂੰਘਾਈ ਵਿੱਚ ਸੁਰੱਖਿਆ: XXTAG8 ਦੀ ਇੱਕ ਸਿੰਗਲ ਪਰਤ XXTAG8 ਲੇਅਰ ਨੂੰ ਰੋਕਦੀ ਨਹੀਂ ਹੈ। ਕਾਫੀ — ਸੁਰੱਖਿਆ ਲਈ ਸਾਰੀਆਂ ਲੇਅਰਾਂ ਨੂੰ ਇਕੱਠੇ ਕੰਮ ਕਰਨ ਦੀ ਲੋੜ ਹੈਲੇਅਰ 1ਲੇਅਰ 2ਲੇਅਰ 3ਲੇਅਰ 4ਲੇਅਰ 5XTAGX20pts10TAG10pts Enਸਾਰਾ ਟ੍ਰੈਫਿਕਬਲੌਕਸ ਬ੍ਰੂਟਬਲਾਂ ਦੇ ਹਮਲੇਪਛਾਣ ਦੀ ਪੁਸ਼ਟੀ ਕਰਦਾ ਹੈTAG1117XTAG1117XTAG1117XTAG1117XTAG11111111112X ਨੂੰ ਰੋਕਦਾ ਹੈ / injectSQL ਇੰਜੈਕਸ਼ਨ
ਨੂੰ ਰੋਕਦਾ ਹੈ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 ਇੰਜੈਕਸ਼ਨ ਨੂੰ ਰੋਕੋ

OWASP; ਰੱਖਿਆSQL ਇੰਜੈਕਸ਼ਨਖਤਰਨਾਕ ਸਵਾਲਪੈਰਾਮੀਟਰਾਈਜ਼ਡ ਪੁੱਛਗਿੱਛਤਿਆਰ ਬਿਆਨ & ORMਟੁੱਟੇ ਹੋਏ ਪ੍ਰਮਾਣਕਮਜ਼ੋਰ ਪ੍ਰਮਾਣ ਪੱਤਰJWT + MFA + bcryptਟੋਕਨ ਰੋਟੇਸ਼ਨ & ਹੈਸ਼ਿੰਗXSSਸਕ੍ਰਿਪਟ ਇੰਜੈਕਸ਼ਨਇਨਪੁਟ ਸੈਨੀਟਾਈਜ਼ੇਸ਼ਨCSP ਸਿਰਲੇਖ & ਏਸਕੇਪਿੰਗSSRFਅੰਦਰੂਨੀ ਪਹੁੰਚURL ਅਲੋਲਿਸਟਨੈੱਟਵਰਕ ਸੈਗਮੈਂਟੇਸ਼ਨ2 Mix ਸੰਰਚਨਾਡਿਫੌਲਟ ਸੈਟਿੰਗਾਂਸੁਰੱਖਿਆ ਸਖਤੀHelmet.js & ਆਡਿਟਹਰ ਖਤਰੇ ਦਾ ਬਚਾਅ ਹੁੰਦਾ ਹੈ — ਪੂਰੀ ਸੁਰੱਖਿਆ ਲਈ ਸਾਰੀਆਂ ਪਰਤਾਂ ਨੂੰ ਲਾਗੂ ਕਰੋOWASP ਸਿਖਰ ਦੇ 10 ਵੈੱਬ ਐਪਲੀਕੇਸ਼ਨ ਸੁਰੱਖਿਆ ਜੋਖਮਾਂ ਦੇ ਆਧਾਰ 'ਤੇ

SQL ਇੰਜੈਕਸ਼ਨ ਨੂੰ ਰੋਕਣ ਲਈ ਹਮੇਸ਼ਾ ਪੈਰਾਮੀਟਰਾਈਜ਼ਡ ਪੁੱਛਗਿੱਛਾਂ ਜਾਂ ORM ਲਾਇਬ੍ਰੇਰੀਆਂ (ਜਿਵੇਂ ਕਿ ਸੀਕਵਲਾਈਜ਼ ਜਾਂ 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.