راهنمای توسعه دهنده امنیت API ضد گلوله در Node.js

چیزهای امنیتی که مهم هستند

امنیت تا زمانی که هک نشوید ، کسل کننده و کسل کننده است. سپس واقعاً جالب است. گره در ایجاد آسان API در یک شبه بسیار عالی است ، اما این کار را نیز اشتباه می کند.

من دیده ام که دیگران به دلیل:

  • آنها بسته هایی را که هرگز حسابرسی نمی کردند به کار بردند (NPM فوق العاده و ترسناک است)
  • آنها به ورودی کاربران متکی هستند (هرگز ، هرگز این کار را انجام ندهید)
  • آنها اعتبارنامه های سخت را مستقیماً وارد کد می کنند (چرا در جهان؟)

من مطمئن هستم که اگر کسی برنامه شما را هک کند ، تعجب کرده اید که چه کاری انجام می دهید. بیایید به برخی از پیشنهادات برای جلوگیری از هک شدن نگاه کنیم.

اصول اولیه

  • بررسی کنید که کاربران/مشتریان برای شما چه ارسال می کنند

    همیشه از کاربران انتظار داشته باشید که چیزهای عجیب و غریب را امتحان کنند. همه آن را بررسی کنید.

    // Bad code 
    app.post('/users', (req, res) = {
      db.users.create(req.body); // Accepting whatever users send? Bad idea!
    });
    
    // Better approach
    app.post('/users', (req, res) = {
      // Use something like Joi or express-validator
      if (!req.body.email || !req.body.email.includes('@')) {
        return res.status(400).send('Invalid email');
      }
      if (typeof req.body.age !== 'number') {
        return res.status(400).send('Age must be a number');
      }
      // Now it's safer to save
      db.users.create(req.body);
    });
    

من این را برای خودم پیدا کردم وقتی شخصی با قرار دادن ایموجی در …

Source link