Не копируйте примеры кода сразу в терминал
Некоторые ресурсы при копировании текста с сайта вставляют в буфер обмена ссылку на себя. Например, такое поведение будет при копировании первого абзаца со страницы КонсультантПлюс.
Как это технически работает?
В JS можно на событие copy навесить свой обработчик, который что-то модифицирует. Есть более современное Clipboard API.
Этот функционал позволяет осуществить атаку на целостность данных через манипуляцию с содержимым буфера обмена. Результат - страничка, где написано
echo "not evil"
Теперь скопируйте этот фрагмент и вставьте в терминал. Поздравляю, вас хакнули. В терминал вставился другой текст
echo "evil"
Не копируйте команды сразу в терминал. Лучше перепечатать (так ещё и запомнится лучше) или идти по пути сайт — блокнот — анализ глазками. Копировать без переноса строки тоже не поможет — наглый js может вставить в буффер символ переноса строки. В итоге безопасное
pip install -U pytest
Может сделать с вами что-то злобное. Не всегда об этом можно узнать. Команды в терминале, которые начинаются с пробела, в истории команд не сохраняются. Если вывод команды достаточно длинный (установка пакета для python является хорошим примером), то вы даже не увидите настоящую введенную команду.
А ещё так можно модифицировать ваш .bashrc, сделав любой alias.
В телеграм-канале разбираем разные нюансы из жизни разработчика на Python и не только — python, bash, linux, тесты, командную разработку.