মূল বিষয়বস্তুতে যান

ব্লগ

Node.js এবং MySQL প্রকল্পগুলিতে APIগুলি সুরক্ষিত করা: সেরা অনুশীলন এবং কোড উদাহরণ

Node.js এবং MySQL-এ API নিরাপত্তার জন্য সেরা অনুশীলন

  • 3 মিনিটে পড়া
  • Updated

Node.js এবং MySQL প্রজেক্টে API সুরক্ষিত করা

API নিরাপত্তা স্তরTAG15 XTAG15 XTAG15 Clientব্রাউজার/অ্যাপTLSHTTPS1.3🔒Rate mi mi terDDoSসুরক্ষা🛡️AuthJWTXTAG51 যাচাই করুন 45XPRইনপুটযাচাইকরণস্যানিটাইজজোই/জোড✅PR প্যারাপ্রস্তুতস্টেটমেন্ট🗃️MySQLডাটাবেসগভীরতায় প্রতিরক্ষা XXTAG8 স্তরের একক XTAG8 স্তর প্রতিরোধ করে না পর্যাপ্ত — নিরাপত্তার জন্য সমস্ত স্তর একসাথে কাজ করা প্রয়োজনস্তর 1স্তর 2স্তর 3স্তর 4স্তর 5XTAGX10pt XTAGX210ptসমস্ত ট্র্যাফিকব্লক ব্রুটফোর্স অ্যাটাকগুলিপরিচয় যাচাই করেXTAG115TAG1116XTAG1SS প্রতিরোধ করে / ইনজেকশনSQL ইনজেকশন
প্রতিরোধ করেAPI Security Diagram

API হল আধুনিক ওয়েব এবং মোবাইল অ্যাপ্লিকেশনগুলির মেরুদণ্ড৷ 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 সব জায়গায়

ব্যবহার করুন

সর্বদা ট্রানজিটে ডেটা এনক্রিপ্ট করতে 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 ইনজেকশনক্ষতিকারক প্রশ্নগুলিপ্যারামিটারাইজড প্রশ্নগুলিপ্রস্তুত বিবৃতি & ORMBroken Authদুর্বল শংসাপত্রJWT + MFA + bcryptটোকেন ঘূর্ণন & হ্যাশিংXSSস্ক্রিপ্ট ইনজেকশনইনপুট স্যানিটাইজেশনCSP হেডার & এস্কেপিংSSRFঅভ্যন্তরীণ অ্যাক্সেসইউআরএল অ্যালোলিস্টনেটওয়ার্ক বিভাজন2 কনফিগারেশন 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.