Dies ist nicht sicher, da cURL standardmäßig die Standardauthentifizierung verwendet , bei der das HTTP-Protokoll Ihr Kennwort im Klartext sendet. Wenn Sie die username:password
Zeichenfolge angeben , wird sie in eine BASE64- Zeichenfolge im HTTP-Header konvertiert :
GET / HTTP/1.1
Host: example.com
User-Agent: Mozilla/5.0
Accept: text/html
Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
Jeder, der in der Lage ist, Ihren HTTP-Datenverkehr abzufangen (Ihr Provider, jeder, der auf denselben WLAN- Zugangspunkt zugreift wie Sie usw.), kann das Kennwort mithilfe eines Online-BASE64-Konverters wiederherstellen .
Das HTTPS-Protokoll verbessert die Situation, indem eine verschlüsselte Verbindung hergestellt wird, bevor dieser Header gesendet wird, und verhindert, dass das Kennwort preisgegeben wird. Dies gilt jedoch nur, wenn der Benutzer aufgefordert wird, unbekannte Zertifikate zu bestätigen, Sicherheitsausnahmen zuzulassen usw.
Beachten Sie, dass möglicherweise Befehlsargumente für andere Benutzer auf demselben Computer verfügbar sind, um z. B. das ps -ef
Dateisystem / proc in Ihrem Bash-Verlauf und in Ihrem Terminal-Protokoll anzuzeigen (vielen Dank für den Kommentar von @ Lambert, der dies bemerkt). cURL versucht auf einigen Plattformen, das Kennwort auszublenden, sodass beispielsweise bei ps -ef
Ihnen wahrscheinlich ein Leerzeichen anstelle eines Kennworts angezeigt wird. Anstatt das Passwort als Befehlszeilenargument zu übergeben, ist es jedoch besser, cURL direkt zur Eingabe eines Passworts aufzufordern, wie in der cURL-FAQ beschrieben .