TL;DR Non, vous n'êtes pas sûr à 100%. Ou en d'autres termes, réfléchissez-y à deux fois. ;)
N'exécutez pas de bouts de code sans en comprendre les bases. Utilisez man
pour en savoir plus sur une commande ou un programme. Utilisez Google ou un autre portail de recherche si vous ne comprenez pas. Et si vous avez encore des doutes, n'exécutez tout simplement pas le code.
Tu me fais confiance ? Alors cours :
man man
Ok, pas dangereux, vous voyez la man-page de man
Mais qu'en est-il du code ci-dessous, vous me faites confiance ?
$(perl -MMIME::Base64 -0777ne 'print decode_base64($_)' <<< "ZWNobyAnQk9PSCEnCg==")
Non ? Bonne idée. Décomposons le code :
-
perl
L'interpréteur du langage Perl
-
-MMIME::Base64
Encodage et décodage de chaînes de caractères en base64
-
-0777ne
-0777
- Change le séparateur de ligne en undef, ce qui nous permet d'aspirer le fichier, en fournissant toutes les lignes à Perl en une seule fois.
-e
- (execute) est ce qui nous permet de spécifier le code Perl que nous voulons exécuter directement sur la ligne de commande.
-n
- Transmettre l'entrée à Perl ligne par ligne.
-
'print decode_base64($_)'
- Décode une chaîne de caractères, la chaîne est enregistrée dans le fichier $_
.
-
"ZWNobyAnQk9PSCEnCg=="
- Et ça ? Qu'est-ce que c'est que ça ?
Commençons un test.
On sait, c'est quelque chose comme base64 et ça a l'air codé. Par conséquent, décodez la chaîne avec :
base64 --decode <<< "ZWNobyAnQk9PSCEnCg=="
Et le résultat est ok, pas vraiment dangereux :
echo 'BOOH!'
Maintenant, nous pouvons faire la même chose avec perl
perl -MMIME::Base64 -0777ne 'print decode_base64($_)' <<< "ZWNobyAnQk9PSCEnCg=="
Et le résultat est, quelle surprise :
echo 'BOOH!'
Mais était-ce dangereux ? Ça, c'est dangereux :
$(…)
Cette construction exécute la sortie des commandes entre crochets.
Essayons, tu me fais confiance ?
$(perl -MMIME::Base64 -0777ne 'print decode_base64($_)' <<< "ZWNobyAnQk9PSCEnCg==")
"BOOH !
Et de quoi s'agit-il ?
c3VkbyBraWxsYWxsIG5hdXRpbHVzCg==
Essaie Tu me fais confiance ?