Itu tidak aman, karena cURL default ke otentikasi dasar di mana protokol HTTP mengirim kata sandi Anda dalam teks yang jelas. Saat Anda menentukan username:password
string, itu akan dikonversi ke string BASE64 di header HTTP:
GET / HTTP/1.1
Host: example.com
User-Agent: Mozilla/5.0
Accept: text/html
Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
Siapa pun yang dapat mencegat lalu lintas HTTP Anda (penyedia Anda, siapa pun yang mengakses AP nirkabel yang sama seperti Anda, dll.) Akan dapat memulihkan kata sandi hanya dengan menggunakan konverter BASE64 online .
Protokol HTTPS akan membuat segalanya lebih baik dengan membuat koneksi terenkripsi sebelum header ini dikirim, mencegah kata sandi terungkap. Namun, ini hanya berlaku jika pengguna memperhatikan ketika diminta untuk mengkonfirmasi sertifikat yang tidak dikenal, mengesahkan pengecualian keamanan dan sebagainya.
Perhatikan bahwa argumen perintah mungkin tersedia untuk pengguna lain di mesin yang sama untuk melihat, misalnya ps -ef
, / sistem file proc, di riwayat bash Anda, dan di log terminal Anda (terima kasih atas komentar @ Lambert yang memperhatikan hal ini). cURL pada beberapa platform mencoba menyembunyikan kata sandi, jadi misalnya dengan ps -ef
Anda cenderung melihat ruang kosong alih-alih kata sandi. Namun, daripada meneruskan kata sandi sebagai argumen baris perintah, memiliki cURL secara langsung meminta kata sandi lebih baik, seperti yang dibahas pada faq cURL .