Não é seguro, porque o cURL assume como padrão a autenticação básica, onde o protocolo HTTP envia sua senha em texto não criptografado. Quando você especifica a username:password
sequência, ela é convertida em uma sequência 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 ponto de acesso sem fio que você, etc) poderá recuperar a senha simplesmente usando um conversor BASE64 online .
O protocolo HTTPS melhorará as coisas estabelecendo uma conexão criptografada antes do envio desse cabeçalho, impedindo que a senha seja revelada. No entanto, isso só se aplica 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 do comando podem estar disponíveis para outros usuários na mesma máquina verem, por exemplo ps -ef
, sistema de arquivos / proc, no histórico do bash e no log do terminal (obrigado pelo comentário do @ Lambert, observando isso). O cURL em algumas plataformas tenta ocultar a senha. Por exemplo, 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, o cURL solicita diretamente uma senha é melhor, conforme discutido no FAQ do cURL .