Não é seguro, porque cURL padroniza a autenticação básica onde o protocolo HTTP envia sua senha Texto claro. Quando você especifica a string username:password
, ela é convertida em uma string BASE64 no cabeçalho HTTP:
GET / HTTP/1.1
Host: example.com
User-Agent: Mozilla/5.0
Accept: text/html
Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
Qualquer pessoa capaz de interceptar seu tráfego HTTP (seu provedor, qualquer pessoa acessando o mesmo AP sem fio, como você, etc.) poderá recuperar a senha simplesmente usando um conversor BASE64 online .
O protocolo HTTPS melhorará as coisas estabelecendo uma conexão criptografada antes que este cabeçalho seja enviado, evitando que a senha seja revelada. No entanto, isso se aplica somente se o usuário prestar atenção quando solicitado a confirmar certificados desconhecidos, autorizar exceções de segurança e assim por diante.
Observe que os argumentos de comando podem estar disponíveis para outros usuários na mesma máquina, por exemplo, ps -ef
, / sistema de arquivos proc, em seu histórico bash, e em seu log de terminal (obrigado pelo comentário de @ Lambert, observando isso). O cURL em algumas plataformas tenta ocultar a senha, por exemplo, com ps -ef
, é provável que você veja espaço em branco em vez de uma senha. No entanto, em vez de passar a senha como um argumento de linha de comando, é melhor ter cURL solicitando diretamente uma senha, conforme discutido no cURL faq .