TL; DR Não, você não é 100% seguro. Ou com outras palavras, pense duas vezes. ;)
Não execute trechos de código sem entender o básico. Use man
para saber mais sobre um comando ou um programa. Use o Google ou outro portal de pesquisa, se você não entender. E se você ainda duvida, simplesmente não execute o código.
Você confia em mim? Então corra:
man man
Ok, não é perigoso, você vê a página de manual de man
Mas e o código abaixo, você confia em mim?
$(perl -MMIME::Base64 -0777ne 'print decode_base64($_)' <<< "ZWNobyAnQk9PSCEnCg==")
Não? Boa ideia. Vamos detalhar o código:
perl
O intérprete de linguagem Perl
-MMIME::Base64
Codificação e decodificação de strings base64
-0777ne
-0777
- Altera o separador de linhas para undef, permitindo que você arquive o arquivo, alimentando todas as linhas para Perl de uma só vez.
-e
- (execute) flag é o que nos permite especificar o código Perl que queremos executar diretamente na linha de comando.
-n
- Alimente a entrada para Perl linha por linha.
'print decode_base64($_)'
- Decodifica uma sequência, a sequência é salva $_
.
"ZWNobyAnQk9PSCEnCg=="
- E isto? O que é isso?
Vamos começar um teste.
Sabemos, é algo como base64 e parece codificado. Portanto, decodifique a string com:
base64 --decode <<< "ZWNobyAnQk9PSCEnCg=="
E a saída é ... ok, não é realmente perigosa:
echo 'BOOH!'
Agora, podemos fazer o mesmo com perl
perl -MMIME::Base64 -0777ne 'print decode_base64($_)' <<< "ZWNobyAnQk9PSCEnCg=="
E a saída é, que surpresa:
echo 'BOOH!'
Mas isso era perigoso? Isso é perigoso:
$(…)
Essa construção executa a saída dos comandos entre colchetes.
Vamos tentar, você confia em mim?
$(perl -MMIME::Base64 -0777ne 'print decode_base64($_)' <<< "ZWNobyAnQk9PSCEnCg==")
'BOOH!'
E sobre o que
c3VkbyBraWxsYWxsIG5hdXRpbHVzCg==
Experimente ... Você confia em mim?