No es seguro, porque cURL se predetermina a la autenticación básica donde el protocolo HTTP envía su contraseña en texto claro. Cuando especifica la username:password
cadena, se convierte en una cadena BASE64 en el encabezado HTTP:
GET / HTTP/1.1
Host: example.com
User-Agent: Mozilla/5.0
Accept: text/html
Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
Cualquier persona que pueda interceptar su tráfico HTTP (su proveedor, cualquiera que acceda al mismo AP inalámbrico que usted, etc.) podrá recuperar la contraseña simplemente usando un convertidor BASE64 en línea .
El protocolo HTTPS mejorará las cosas al establecer una conexión cifrada antes de que se envíe este encabezado, evitando que se revele la contraseña. Sin embargo, esto solo se aplica si el usuario presta atención cuando se le solicita confirmar certificados desconocidos, autorizar excepciones de seguridad, etc.
Tenga en cuenta que los argumentos de comando pueden estar disponibles para que otros usuarios en la misma máquina los vean, por ejemplo ps -ef
, / sistema de archivos proc, en su historial de bash y en su registro de terminal (gracias por el comentario de @ Lambert que lo señala). cURL en algunas plataformas intenta ocultar la contraseña, por lo que, por ejemplo ps -ef
, es probable que vea un espacio en blanco en lugar de una contraseña. Sin embargo, en lugar de pasar la contraseña como un argumento de línea de comandos, es mejor que cURL solicite una contraseña directamente, como se explica en las preguntas frecuentes de cURL .