Bali menyang Artikel
2024-01-03•7 menit maca

Praktik Apik Keamanan API

SecurityAPIBackend

Cara penting kanggo nglindhungi API saka celah keamanan lan serangan sing umum.

Praktik Apik Keamanan API

Keamanan kudu dadi prioritas ing saben API. Iki sawetara cara penting kanggo nglindhungi endpoint.

Autentikasi

Praktik Apik JWT

Tandhatangani token kanthi wektu kadaluwarsa lan priksa wektune nalika token dienggo:

// Sign token with expiration
const token = jwt.sign(
  { userId: user.id },
  process.env.JWT_SECRET!,
  { expiresIn: '1h' }
);

// Verify with expiration check
const decoded = jwt.verify(token, process.env.JWT_SECRET!);

OAuth 2.0

Kanggo integrasi karo pihak katelu, gunakake OAuth 2.0.

Otorisasi

Kontrol Akses Miturut Peran (RBAC)

Watesi operasi miturut peran pangguna. Tuladha iki nolak panjaluk yen perane ora diidini:

function authorize(roles: string[]) {
  return (req: Request, res: Response, next: NextFunction) => {
    if (!roles.includes(req.user.role)) {
      return res.status(403).json({ error: 'Forbidden' });
    }
    next();
  };
}

// Usage
router.delete('/users/:id', authorize(['admin']), deleteUser);

Validasi Input

Tansah priksa lan resiki input:

const schema = z.object({
  email: z.string().email(),
  password: z.string().min(8)
});

function validateInput(data: unknown) {
  return schema.parse(data);
}

Watesan Panjaluk

Kanggo nyegah penyalahgunaan, watesi jumlah panjaluk:

app.use('/api', rateLimit({
  windowMs: 15 * 60 * 1000,
  max: 100
}));

Header Keamanan

Gunakake helmet.js kanggo nambah header keamanan:

app.use(helmet());

Kesimpulan

Keamanan kudu terus digatekake. Tansah ngerteni celah keamanan anyar lan pasang patch sing dibutuhake.