Bu güvenli değildir, çünkü cURL varsayılan olarak HTTP protokolünün şifrenizi açık metin olarak gönderdiği temel kimlik doğrulamasını yapar . Belirttiğiniz zaman username:password
dize, bir dönüştürülür alır BASE64 HTTP başlık içinde dize:
GET / HTTP/1.1
Host: example.com
User-Agent: Mozilla/5.0
Accept: text/html
Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
HTTP trafiğinize müdahale edebilecek (sağlayıcınız, sizinle aynı kablosuz AP'ye erişen herkes vb.), Yalnızca çevrimiçi bir BASE64 dönüştürücüsü kullanarak şifreyi kurtarabilir .
HTTPS protokolü, bu başlık gönderilmeden önce şifreli bir bağlantı kurarak şifrelerin ortaya çıkmasını önleyerek işleri daha iyi hale getirecektir. Ancak, bu yalnızca kullanıcı bilinmeyen sertifikaları onaylaması, güvenlik istisnalarını yetkilendirmesi vb.
Komut argümanlarının aynı makinedeki diğer kullanıcılar için, örneğin ps -ef
/ proc dosya sistemini, bash geçmişinizde ve terminal günlüğünüzde görülebileceğine dikkat edin (@ Lambert'in bu yorumu yaptığı için teşekkürler). Bazı platformlarda cURL, şifreyi gizlemeye çalıştığından, örneğin ps -ef
bir şifre yerine boşluk görmeniz muhtemeldir. Ancak, şifreyi bir komut satırı argümanı olarak iletmek yerine, cURL sss'inde tartışıldığı gibi cURL'nin doğrudan bir parola isteminde bulunması daha iyidir .