Как альтернативы лучше, чем с помощью curl | судо ш - PullRequest
3 голосов
/ 04 июля 2019

На этой странице говорится о шаблоне "using curl | sudo sh" для:

Используйте этот подход при внесении изменений на рабочем сервере [вместо]

curl -sf -L https://static.rust-lang.org/rustup.sh -o rustup.sh
less rustup.sh
chmod +x rustup.sh
sudo ./rustup.sh

Я не понимаю, почему это лучше, чем просто делать curl | sudo sh. Какая разница, что вы скачали файл и сначала сделали chmod'd. Я не видел никаких аргументов, какие есть альтернативы для завивки | ш, а почему они лучше, только проблемы с локонами | шиллинг Пожалуйста, объясните, как что-то вроде выше, лучше (в некоторых деталях), или любая другая альтернатива лучше в деталях.

Например, ни один из ответов здесь не объясняет никаких альтернатив или почему они лучше. То же самое с любым другим веб-сайтом, который я видел.

Основной аргумент в том, что если кто-то взломает ваш сервер, он может заменить код чем-то другим. Но не могло ли это случиться с любым менеджером пакетов? Я имею в виду, кто каждый раз глубоко проверяет код перед npm installing, даже с собственным расширением Си. Они могут делать то же самое, особенно с сценариями оболочки до / после, запускаемыми при установке. Я не понимаю, как это безопаснее, чем просто пускать в bash.

Ответы [ 2 ]

1 голос
/ 04 июля 2019

https://www.idontplaydarts.com/images/bashmov.gif

перенаправление оболочки, по-видимому, может быть обнаружено на стороне сервера, и при обычной проверке может быть доставлен обычный сценарий, а при перенаправлении - вредоносная полезная нагрузка, так что по крайней мере выЧтобы избежать этой проблемы, этот сайт объясняет это гораздо лучше, чем я могу: https://www.idontplaydarts.com/2016/04/detecting-curl-pipe-bash-server-side/

1 голос
/ 04 июля 2019

Существенной разницей является использование less. Цитата предлагает вам проверить содержимое файла, который вы скачали. Это необходимо, потому что код не подписан. Менеджер пакетов использует подписи для доверия источникам. Важно проверить содержимое, потому что небезопасно передавать что-то с веб-сервера прямо в вашу оболочку. См. здесь как его использовать здесь для описания.

...