Насколько небезопасно передавать пароль для curl через cat

Корпус

while true ; do cat > $(( $RANDOM * $RANDOM )).file & done;Вы, вероятно, достигнете предела максимального процесса, если не root. Если это так, используйте один процесс perl для открытия файлов. Вы можете понизить maxfiles с помощью sysctl, хотя я не знаю эту переменную с руки -.

0
16.08.2019, 08:56
2 ответа

Очень часто ваш пароль указывается в curlаргументах командной строки. Возможно, это не самый безопасный способ использования пароля, но нет ничего идеального, и в большинстве случаев других вариантов не так много.

Ваша функция получения пароля совершенно не нужна. Вы можете просто сделать это:

read -rsp "Enter pw: " pw
curl -u "$(logname)":"$pw" "$url"

Примечание. :Я добавил аргумент -rк вашей команде read, так как он позволит вам буквально читать escape-символы обратной косой черты, что вы наверняка захотите использовать для паролей.

0
28.01.2020, 02:22

Несмотря на все эти танцы с read, cat и heredocs, в конечном итоге подстановка команд приведет к замене $(provide_pw)фактическим паролем. Затем это будет частью деталей процесса.

Из man curl, о-u:

On systems where it works, curl will hide the given option argument from process listings.

Таким образом, в таких системах, а также в системах Linux с установленным соответствующим образом hidepidпароль будет скрыт от других пользователей, но в других местах каждый может увидеть пароль, просмотрев командную строку процесса curl, используя ps, topи т. д.

Если вы хотите readпароль, пусть curlсделает это за вас:

If you simply specify the user name, curl will prompt for a password.

См. также:Как curl защищает пароль от появления в выводе ps? Здесь есть состояние гонки :между запуском curl и чисткой командной строки, пароль будет виден, и если он не скрыт другими способами (например hidepidв Linux ), будут видны всем в течение этого окна.

3
28.01.2020, 02:22

Теги

Похожие вопросы