86

Не копируйте примеры кода сразу в терминал

Некоторые ресурсы при копировании текста с сайта вставляют в буфер обмена ссылку на себя. Например, такое поведение будет при копировании первого абзаца со страницы КонсультантПлюс.


Как это технически работает?


В JS можно на событие copy навесить свой обработчик, который что-то модифицирует. Есть более современное Clipboard API.

Этот функционал позволяет осуществить атаку на целостность данных через манипуляцию с содержимым буфера обмена. Результат - страничка, где написано


echo "not evil"

Теперь скопируйте этот фрагмент и вставьте в терминал. Поздравляю, вас хакнули. В терминал вставился другой текст

echo "evil"

Не копируйте команды сразу в терминал. Лучше перепечатать (так ещё и запомнится лучше) или идти по пути сайт — блокнот — анализ глазками. Копировать без переноса строки тоже не поможет — наглый js может вставить в буффер символ переноса строки. В итоге безопасное

pip install -U pytest

Может сделать с вами что-то злобное. Не всегда об этом можно узнать. Команды в терминале, которые начинаются с пробела, в истории команд не сохраняются. Если вывод команды достаточно длинный (установка пакета для python является хорошим примером), то вы даже не увидите настоящую введенную команду.


А ещё так можно модифицировать ваш .bashrc, сделав любой alias.


В телеграм-канале разбираем разные нюансы из жизни разработчика на Python и не только — python, bash, linux, тесты, командную разработку.

Правила сообщества

Публиковать могут пользователи с любым рейтингом. Однако!


Приветствуется:

• уважение к читателям и авторам

• конструктивность комментариев

• простота и информативность повествования

• тег python2 или python3, если актуально

• код публиковать в виде цитаты, либо ссылкой на специализированный сайт


Не рекомендуется:

• допускать оскорбления и провокации

• распространять вредоносное ПО

• просить решить вашу полноценную задачу за вас

• нарушать правила Пикабу

2
DELETED
Автор поста оценил этот комментарий

Для ЛЛ: не пизди бездумно код

раскрыть ветку (1)
4
Автор поста оценил этот комментарий

ЛЛГС

1
Автор поста оценил этот комментарий
Но тогда он сломается если вводить без кавычки)
раскрыть ветку (1)
2
Автор поста оценил этот комментарий

хм, ты прав - кавычки у меня отменить не получилось. Я думал ^D в виде текста смогу отправить, а оно не работает. Не зная конкретной кавычки заставить выполнить команду я не смог

2
Автор поста оценил этот комментарий

на линуксе обходится через среднюю кнопку мыши

раскрыть ветку (1)
2
Автор поста оценил этот комментарий

Вообще javascript может манипулировать выделением, так что тут вопрос. Я не спец во фронтэнде и заставить работать подмену буфера выделения с разбегу не смог. Но смог по ctrl+c модифицировать и буфер выделения, и обычный буфер - пример кода тут


https://stackoverflow.com/a/4777746/19204439

5
Автор поста оценил этот комментарий
кому интересно, на странице по ссылке такой скрипт
Иллюстрация к комментарию
раскрыть ветку (1)
2
Автор поста оценил этот комментарий

Спасибо, хороше дополнение

6
Автор поста оценил этот комментарий

Самое большое зло это выражения типа

curl https://непонятно.какой.сайт/мегаполезный_скрипт.sh | /bin/bash

За это даже руки отрывать не нужно, они рано или поздно сами выпадут вместе с седыми волосами

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Поддерживаю :)

7
Автор поста оценил этот комментарий

Как обычно всё сводится к тому, что надо пользоваться доверенными источниками. Сомневаюсь, что такой обработчик на копирование можно встроить на гитхабе или стэковерфлоу. Инструкции на официальных сайтах топовых проектов тоже такой хернёй страдать не будут. А если копировать с топжопа.ком то да, и результат будет соответствующий.

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Да, stackoverflow упростил жизнь в этом плане, ещё и рейтинг ответов есть. Но при гуглении нередка ситуация, когда ответ на другом ресурсе. Например, мануалы часто лежат где попало, в плане на разных no-name площадках

5
Автор поста оценил этот комментарий

Вообще было бы недурно ещё понимать, что там откуда копируешь написано)

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Это вторая часть. А тут ты понимаешь, написано правильное. Но копируется то совсем другое!

3
Автор поста оценил этот комментарий
Ладно, убедил. Тогда кавычку вместо решетки) тогда либо скрипт не выполнится, либо сломается)
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Сломается первая часть. А потом можно точку с запятой и другую команду. Или перенос строки даже

показать ответы
2
DELETED
Автор поста оценил этот комментарий

Есть способ проще обработчиков. Просто текст скрывают средствами CSS. Вот только что накидал - все работает:

Иллюстрация к комментарию
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Великолепно, спасибо)

1
Автор поста оценил этот комментарий
Можно просто написать # в терминал, тем более что довольно часто команда требует редактирования
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Неплохое решение. Но в буфер обмена можно вставить перенос строки, т.е. что-то вида


echo nothing

/bad/script


И он выполнится, несмотря на защитную решётку в начале терминала, куда скопирован

показать ответы

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества