Mindset Keamanan Developer — Security

Mindset Keamanan Developer Menulis kode yang aman dimulai dari cara berpikir. Seorang developer dengan mindset keamanan selalu bertanya: "Bagaimana fitur ini bi

Mindset Keamanan Developer

Menulis kode yang aman dimulai dari cara berpikir. Seorang developer dengan mindset keamanan selalu bertanya: "Bagaimana fitur ini bisa disalahgunakan?" sebelum menulis satu baris kode pun.

Prinsip Least Privilege

Berikan akses seminimal mungkin yang dibutuhkan. Jika sebuah fungsi hanya perlu membaca data, jangan berikan akses tulis.

// Buruk: user biasa punya akses admin
app.get("/admin/users", (req, res) => {
  return db.query("SELECT * FROM users");
});

// Baik: cek role terlebih dahulu
app.get("/admin/users", requireRole("admin"), (req, res) => {
  return db.query("SELECT * FROM users");
});

Never Trust User Input

Semua input dari pengguna — form, URL parameter, headers, cookies — harus dianggap berbahaya sampai dibuktikan sebaliknya.

Fail Securely

Ketika terjadi error, pastikan sistem gagal ke kondisi yang aman, bukan terbuka.

// Buruk: error mengekspos informasi
app.use((err, req, res, next) => {
  res.status(500).json({
    error: err.message,
    stack: err.stack,  // Jangan pernah expose stack trace!
    query: err.sql     // Jangan expose query SQL!
  });
});

// Baik: error message generik untuk user
app.use((err, req, res, next) => {
  console.error(err); // Log lengkap di server
  res.status(500).json({
    error: "Terjadi kesalahan. Silakan coba lagi."
  });
});

Security by Design

Keamanan bukan sesuatu yang ditambahkan di akhir. Integrasikan keamanan dari awal proses development:

Defense in Depth

Defense in depth adalah strategi keamanan yang menggunakan berlapis-lapis pertahanan sehingga jika satu lapisan berhasil ditembus, lapisan berikutnya masih melindungi sistem. Contoh: validasi input di frontend + backend, WAF di depan server, enkripsi data di database, dan monitoring di setiap layer.

Keep It Simple

Kode yang kompleks lebih sulit diamankan. Semakin sederhana kode, semakin sedikit kemungkinan ada celah keamanan tersembunyi.

Yang akan kamu pelajari