Использование cURL с именем пользователя и паролем?

Я нашел работу.

не уверен, что происходит, но я изменил свои свойства отображения. и он отлично работает. вот последовательность: display propertis-> settings tab-> advance. в диалоговом окне предварительного перехода я изменил «Настройки DPI» с Большого (120dpi) на Normal (96 dpi)

399
задан Jonathan.Brink 1 February 2017 в 18:55
поделиться

2 ответа

Это НАМНОГО больше, чем OP, относительно которого попросили, но так как это - главный результат для надежно передающих паролей к curl, я добавляю эти решения здесь для других, которые прибывают, сюда ища это.

<час>

ПРИМЕЧАНИЕ: -s аргумент для read команда не является POSIX и так не доступна везде, таким образом, это не будет использоваться ниже. Мы будем использовать stty -echo и stty echo вместо этого.

ПРИМЕЧАНИЕ: Все переменные удара ниже могли вместо этого быть объявлены как местные жители если в функции вместо сбрасывания.

ПРИМЕЧАНИЕ: perl довольно общедоступно во всех системах, которые я попробовал из-за него являющийся зависимостью для многих вещей, тогда как ruby и python не, таким образом с помощью [1 112] здесь. Если можно гарантировать ruby / python, где Вы делаете это, можно заменить эти perl команда с их эквивалентом.

ПРИМЕЧАНИЕ: Протестированный в [1 116] 3.2.57 на macOS 10.14.4. Некоторый маленький перевод может требоваться для других оболочек/установок.

<час>

Надежно предлагают пользователю (допускающий повторное использование) пароль передавать завихрению. Особенно полезный, если необходимо назвать завихрение многократно.

Для современных оболочек, где echo встроенное (проверка через [1 118]):

url='https://example.com'
printf "Username: "
read username
printf "Password: "
stty -echo  # disables echoing user input, POSIX equivalent for 'read -s'
read pass
printf "\n" # we need to move the line ahead
stty echo   # re-enable echoing user input
echo ${pass} | sed -e "s/^/-u ${username}:/" | curl --url "${url}" -K-
unset username
unset pass

Для более старых оболочек, где echo что-то как [1 120] (где независимо от того, что это echos видно в списке процессов):
ЭТА ВЕРСИЯ не МОЖЕТ СНОВА ИСПОЛЬЗОВАТЬ ПАРОЛЬ , видеть, опускаются вместо этого.

url='https://example.com'
printf "Username: "
read username
printf "Password: "
stty -echo  # disables echoing user input, POSIX equivalent for 'read -s'
perl -e '
    my $val=<STDIN>;
    chomp $val;
    print STDERR "\n";  # we need to move the line ahead, but not send a newline down the pipe
    print $val;
' | sed -e "s/^/-u ${username}:/" | curl --url "${url}" -K-
stty echo   # re-enable echoing user input
unset username


<час>

, Если Вы, оказывается, должны сохранить пароль временно в файл, снова используете его для нескольких команд прежде, чем очистить его (говорят, потому что Вы используете функции для повторного использования кода и не хотите повторять код и не может раздать значение через эхо). (Да, они немного изобретены, смотря в этой форме, не являющейся функциями в различных библиотеках; я пытался уменьшить их до минимального кода, должен был показать его.)

, Когда эхо встроено (это особенно изобретено, так как эхо является встроенным, но предусмотрело полноту):

url='https://example.com'
filepath="$(mktemp)"  # random path, only readable by current user
printf "Username: "
read username
printf "Password: "
stty -echo  # disables echoing user input, POSIX equivalent for 'read -s'
read pass
echo "${pass}" > "${filepath}"
unset pass
printf "\n" # we need to move the line ahead
stty echo   # re-enable echoing user input

cat "${filepath}" | sed -e "s/^/-u ${username}:/" | curl --url "${url}" -K-

rm "${filepath}"  # don't forget to delete the file when done!!
unset username

, Когда эхо - что-то как [1 121]:

url='https://example.com'
filepath="$(mktemp)"  # random path, only readable by current user
printf "Username: "
read username
printf "Password: "
stty -echo  # disables echoing user input, POSIX equivalent for 'read -s'
$(perl -e '
    my $val=<STDIN>;
    chomp $val;
    open(my $fh, ">", $ARGV[0]) or die "Could not open file \"$ARGV[0]\" $\!";
    print $fh $val;
    close $fh;
' "$filepath")
printf "\n" # we need to move the line ahead
stty echo   # re-enable echoing user input

cat "${filepath}" | sed -e "s/^/-u ${username}:/" | curl --url "${url}" -K-

rm "${filepath}"  # don't forget to delete the file when done!!
unset username
0
ответ дан 22 November 2019 в 23:16
поделиться

Используйте флаг -u , чтобы включить имя пользователя, и curl запросит пароль:

curl -u username http://example.com

Вы также можете включить пароль в команду, но тогда ваш пароль будет виден в истории bash :

curl -u username:password http://example.com
642
ответ дан 22 November 2019 в 23:16
поделиться
Другие вопросы по тегам:

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