HTTP Basic Authentication adalah salah satu cara tertua dan paling sederhana untuk melindungi sebuah resource dengan kata sandi: browser meminta username dan password, lalu keduanya dikirim ke server pada setiap request. Kesederhanaan ini justru menjadi kelemahan utamanya.
Bagaimana header Authorization dibentuk
Username dan password digabung dengan tanda titik dua (username:password), lalu seluruh string tersebut di-encode dengan Base64 dan dimasukkan ke header Authorization: Basic <string_terenkode>. Browser otomatis mengirim ulang header ini pada setiap request berikutnya setelah login pertama berhasil.
Kenapa Base64 bukan keamanan
Base64 adalah skema encoding, bukan enkripsi — siapa pun bisa men-decode string tersebut kembali menjadi username:password dalam hitungan detik, tanpa butuh kunci apa pun. Jika request-nya disadap — misalnya lewat Wi-Fi publik yang tidak aman — kredensial langsung terekspos.
.htpasswd dan proteksi shared hosting
Basic Auth lewat file .htpasswd masih sangat umum dipakai di lingkungan shared hosting berbasis cPanel, yang populer di kalangan developer dan UKM Indonesia untuk melindungi direktori staging atau admin panel dengan cepat tanpa perlu membangun sistem login sendiri. Karena Base64 meng-encode byte, bukan karakter, penting diingat bahwa karakter non-ASCII apa pun dalam password (misalnya tanda kutip pintar hasil copy-paste dari Word) akan memakan lebih dari 1 byte di UTF-8 — hasil token Base64-nya jadi lebih panjang dari yang terlihat sekilas.
Kegunaannya
- Melindungi server staging atau tool internal dengan cepat selama masa pengembangan.
- Membentuk header Authorization yang benar untuk menguji API secara manual lewat curl atau Postman.
- Memahami kenapa Basic Auth lewat HTTP biasa (tanpa HTTPS) dianggap celah keamanan serius.
Basic Auth tidak punya mekanisme logout bawaan
Browser menyimpan kredensial di cache dan otomatis menambahkan header Authorization ke setiap request berikutnya ke origin yang sama, sampai tab-nya ditutup — protokol ini memang tidak menyediakan tombol "logout" standar. Untuk memaksa pengguna keluar, server biasanya memakai trik: sengaja mengembalikan 401 dengan nilai realm yang berbeda, atau mengandalkan pengguna untuk menutup sendiri semua tab browser-nya.