Beranda

Security

Web Application Security Fundamentals #1...

Web Application Security Fundamentals #12: Secure Coding Practices

Terapkan parameterization, context encoding, centralized authorization, secret management, safe error handling, dependency hygiene, dan testing.

Web Application Security Fundamentals #12: Secure Coding Practices
3 dibaca
Belum ada penilaian

Secure coding bukan daftar karakter terlarang. Ia adalah kebiasaan memilih API yang aman, memusatkan policy, mengurangi privilege, dan membuktikan behavior lewat test.

Etika dan scope: praktikkan hanya pada local lab, aplikasi milik sendiri, atau sistem yang memberikan izin tertulis. Tutorial ini tidak mengizinkan pengujian terhadap target publik.

Ilustrasi perlindungan web application

Tujuan pembelajaran

  • menggunakan parameterized API dan context encoding
  • memusatkan authorization
  • menjaga secret serta dependency
  • menangani error dan logging secara aman

Prasyarat

Gunakan browser modern, Developer Tools, dan local lab. Catat versi tool serta environment ketika menguji. Output contoh bersifat ilustratif kecuali dinyatakan sebagai hasil pengujian; jangan menganggap perilaku satu stack berlaku universal.

1. Gunakan safe API

Pisahkan data dari instruction. Untuk database, gunakan parameterized query atau ORM API yang benar. Dynamic identifier seperti nama kolom tidak selalu dapat diparameterkan; pilih dari allowlist.

2. Encode sesuai output context

HTML text, HTML attribute, URL, CSS, dan JavaScript memiliki aturan berbeda. Gunakan auto-escaping template dan hindari menyusun executable context dari untrusted data. Sanitization HTML hanya untuk use case yang memang mengizinkan markup dan harus memakai library terawat.

3. Centralized authorization

Jangan menyebar pemeriksaan role ad hoc. Gunakan policy layer yang mengerti action, resource, ownership, tenant, dan state.

authorize(user, "update", invoice);
await invoiceService.update(invoice, validatedInput);

Tetap uji endpoint langsung; tombol tersembunyi bukan authorization.

4. Secret management

Jangan hard-code secret, memasukkannya ke frontend, container image, log, atau sample config. Gunakan secret manager/environment injection yang sesuai dan rotasi ketika terpapar. Menghapus dari commit terbaru tidak menghapus history.

5. Safe error handling

Tangkap expected error, gagal secara aman, dan kembalikan correlation ID. Jangan menampilkan stack trace atau database error ke pengguna. Pastikan exceptional condition tidak berubah menjadi fail-open.

6. Dependency hygiene

Gunakan sumber registry tepercaya, lockfile, update policy, review install script, dan monitoring advisory. Jangan melakukan update major otomatis ke production tanpa test.

7. Test invariant

Uji siapa boleh melakukan apa terhadap object mana, boundary input, duplicate request, concurrency, dependency failure, dan rollback. Security unit test paling berguna ketika terkait business rule.

8. Code review

Tanyakan: apakah ada input baru, sink baru, privilege, data sensitif, logging, dependency, file operation, redirect, webhook, atau perubahan trust boundary?

Kesalahan umum

  • Membuat crypto sendiri.
  • Mengandalkan blacklist.
  • Hard-code credential.
  • Menangkap semua error lalu melanjutkan proses.
  • Menonaktifkan security control agar test lulus.

Quality gate sebelum diterapkan

  • [ ] Scope dan asset sudah jelas.
  • [ ] Control dijalankan di sisi yang menjadi security boundary.
  • [ ] Positive test dan negative test tersedia.
  • [ ] Error tidak membocorkan secret atau detail internal.
  • [ ] Logging cukup untuk detection tanpa merekam credential.
  • [ ] Versi dependency dan dokumentasi dicatat.
  • [ ] Tidak ada klaim “100% aman”.
  • [ ] Perubahan diuji pada staging atau local lab.

Kesimpulan

Secure code mengurangi kemungkinan vulnerability, tetapi keputusan security juga memengaruhi bisnis. Tutorial berikutnya membahas dampak nyata dan cara mengkomunikasikan risk.

Referensi resmi

Post Terkait

Web Application Security Fundamentals #11: Tools Dasar Web Security Testing

Gunakan browser DevTools, curl, proxy, scanner, SAST, SCA, secret scanning, dan WSTG secara aman sesuai fungsi serta bat...

28 Agt 2026

Web Application Security Fundamentals #10: Security Headers

Konfigurasikan CSP, HSTS, nosniff, Referrer-Policy, frame protection, dan Permissions-Policy berdasarkan kebutuhan aplik...

27 Agt 2026

Membangun SOC yang Lebih Kuat Dimulai dari Security Tools yang Tepat

SOC modern tidak bergantung pada satu platform. Pelajari peran SIEM, SOAR, XDR, NDR, Threat Intelligence, dan open-sourc...

27 Agt 2026

© 2026 Yowisben. Semua hak dilindungi.

Powered by LONTAR CMS v1.78.1