Posso criptografar um combo de senha de nome de usuário antes de usá-lo com cURL?

3

Estou fazendo um script de shell que acessa um serviço da web com autenticação básica. Eu não quero ter que colocar meu nome de usuário e senha toda vez que o script é executado, mas eu também não quero ter o combo em texto simples dentro do script. Eu sei que o nome de usuário e a senha recebem codificação de base64 antes de serem enviados pela rede. Existe alguma maneira que eu poderia codificar de antemão e incluí-lo no script de shell?

    
por Greg Guida 15.02.2012 / 15:26

2 respostas

3

Não.

Bem, tecnicamente, você poderia transmitir o cabeçalho Authorization bruto usando --header . Mas a utilidade disso seria exatamente zero . Base64 é apenas uma codificação usada para evitar a corrupção de dados binários, mas não oculta nada - pode ser revertido em instantes, por exemplo, usando o comando base64 , por qualquer pessoa que esteja lendo seu script.

Em outras palavras, mesmo que você faça isso, a senha ainda estará em texto simples.

    
por 15.02.2012 / 15:34
2

Você pode fazer com que o script leia a senha de um arquivo. Você pode garantir que o script seja executado com um ID de usuário efetivo que conceda acesso de leitura a esse arquivo e defina permissões para que ninguém mais o faça.

Você pode ter que passar por alguns obstáculos para usar o setuid , o que significaria que os usuários que sabem ler e executar o script não pôde ler o arquivo de senha. O Unix.stackexchange tem uma boa resposta sobre esse assunto. No seu caso, não eleve o UID efetivo para o root, apenas use um ID comum criado apenas para esse propósito (por exemplo, o script é executado como wally, o wally possui o password.txt (r --------) wally não tem nenhum comando especial privilégios, mas aqueles necessários para gravar logs ou arquivos de saída para serem compartilhados com outros)

    
por 15.02.2012 / 15:59