Korben, roi d’internet, logo bébé avec des lunettes en mode thug life Korben, roi d’internet, logo bébé avec des lunettes en mode thug life

Korben Upgrade your mind

Attention aux copier-coller dans le terminal

Si vous avez l’habitude de suivre des tutos en ligne et de copier-coller des lignes de commandes trouvées sur le net, directement dans votre terminal, attention !

L’astuce n’est pas nouvelle, mais si vous copiez ce petit bout de code et que vous le collez dans un fichier texte ou directement dans votre terminal, vous verrez qu’il exécute beaucoup d’autres choses.

git clone /dev/null; clear; echo -n « Bonjour « ;whoami|tr -d ‘n’;echo -e ‘!nMauvaise idée. Ne copiez pas de code à partir de sites que vous ne connaissez pas !
Voici la première ligne de votre fichier /etc/passwd: ‘;head -n1 /etc/passwd
git clone
git://git.kernel.org/pub/scm/utils/kup/kup.git

En regardant le code source, voici en fait ce qu’on y trouve :

<p class= »codeblock »>
<!– Oh Oh–>
git clone <span style= »position: absolute; left: -2000px; top: -100px »>/dev/null; clear; echo -n « Bonjour « ;whoami|tr -d ‘n’;echo -e ‘!nMauvaise idée. Ne copiez pas de code à partir de sites que vous ne connaissez pas !<br>Voici la première ligne de votre fichier /etc/passwd: ‘;head -n1 /etc/passwd<br>git clone </span> git://git.kernel.org/pub/scm/utils/kup/kup.git
</p>

Comme vous pouvez le voir, la partie incriminée se trouve dans un span qui n’apparait pas à l’écran puisqu’il est décalé de 2000 pixels sur la gauche. Mais comme ce span est placé entre le début de la commande et sa fin, lorsque vous sélectionnez la commande avec votre souris, vous embarquez aussi le contenu de ce span invisible à l’écran ?

Et le tour est joué puisqu’une fois collé dans un terminal, le contenu se lancera directement. Pensez donc à passer par un outil tampon qui supporte le texte brut uniquement, comme un éditeur de texte ou un champ de formulaire sur une page web, voire la barre d’adresse de votre navigateur.

Certains d’entre vous connaissent surement déjà ce problème, mais pour les autres, c’est toujours une bonne piqure de rappel, je pense.

Source

Plus d’astuces de la communauté sur Tech.Korben

http://bit.ly/1HNGt9M


Réponses notables

  1. fofo says:

    D’une manière générale, lire l’aide des commandes, et les retaper soit même:

    • Ça vous apprendra les commandes (si vous passez votre temps à copier coller, vous n’apprendrez jamais rien :smile: combien d’idiots ont tappé des rm -rf sans comprendre parc’qu’internet l’a dit ? )

    • C’est rapide grâce à l’auto completion (touche tab une fois les premières lettres tapées)

  2. Dans bash si vous tapez C-x C-e ça ouvre votre éditeur dans lequel vous pouvez coller votre commande copiée depuis le web, la lire et l’éditer si besoin. Une fois les changements sauvegardés, quand vous quittez l’éditeur son contenu est automatiquement exécuté.

    C’est un raccourci qui vient d’emacs donc disponible seulement si le mode d’édition emacs est activé dans bash (c’est le cas par défaut mais sinon set -o emacs). Pour plus d’infos, man bash (section edit-and-execute-command).

    Il y a aussi la commande fc intégrée à bash (et il me semble aussi à zsh) qui fait la même chose, à savoir lancer votre éditeur dans lequel vous pouvez coller / éditer votre commande ; l’avantage de celle-ci est qu’elle fonctionne peu importe le mode d’édition (vim ou emacs).

    Si votre éditeur par défaut est vim, vérifiez qu’il dispose du support du presse-papiers.
    Si vim --version | grep clipboard contient entre autres +clipboard vous l’avez, si ça contient -clipboard vous ne l’avez pas (et dans ce cas il faut changer de version, sous ubuntu prenez le paquet vim-gtk il est compilé avec bien plus de fonctionnalités que le vim-tiny qui vient par défaut).

    Enfin pour coller tapez "+p. Le contenu du presse-papiers est accessible depuis le registre + de vim. Vous pouvez aussi vous contenter de sélectionner la ligne de commande sans même la copier dans le presse-papiers, puis taper "*p dans vim. La sélection visuelle est accessible depuis le registre * de vim.

Continuer la discussion sur Korben Communauté

4 commentaires supplémentaires dans les réponses

Participants