Basic authorization php curl: rest — How do I make a request using HTTP basic authentication with PHP curl?

Безопасное использование базовой аутентификации с помощью curl (Пример)

Две области, где можно легко увидеть простой текстовый пароль: протокол http и хост, на котором запущен веб-клиент. Использование https адресует обычный текст поверх http, но большинство скриптов по-прежнему предоставляют пароль в командной строке или в переменной среды. Запуск «ps auxfwww» покажет, что командная строка и среда доступны любому локальному пользователю.

К счастью, curl позволяет настраивать параметры командной строки через стандартный ввод. Чтобы небезопасно передать параметр —user в curl:

 эхо 'пользователь = "defn:пароль"' | curl -K - https://googles 

Чтобы не генерировать пароль в командной строке, предположим, что пара имя пользователя: пароль находится в файле, доступном для чтения только пользователю:

 { echo -n 'user = "'; пароль кота.txt;эхо '"'; } 

Или выдается командой sudo:

 { echo -n 'user = "'; sudo get-password; echo '"'; } 

Подойдет любая команда, выдающая пароль на стандартный ввод.

9 ответов

Добавьте свой ответ

Фьонсон

Просто примечание: в Linux, по крайней мере, из того, что я читал, и на моей собственной машине только root может видеть переменные среды для всех пользователей. В противном случае пользователь может видеть свою собственную среду. Ваша команда ps не показала мне никакой информации об окружении, даже как root. Вместо этого я использовал «ps -e -o pid,user,cmd e».

Просто проверьте разрешения в /proc/pid/environ. Он установлен chmod 400

В остальном отличный совет!
-Флетчер

более 1 года назад
·
9/user=»:/;s/$/\»/’ | завиток… -K

более 1 года назад
·

старик

Вы также можете использовать gpg для шифрования пароля, а затем передать его как переменную для curl:

для шифрования:
gpg -c $FILE
это создает $FILE.gpg — зашифрованный пароль.

PWFILE=~/<файл>
gpg —batch $PWFILE.gpg
ПАРОЛЬ= cat $PWFILE
rm -f $PWFILE

curl -sL -k -u пользователь:${ПАРОЛЬ} http:/ /. ……..

более 1 года назад
·

анаб

Как и goshaf, я не смог заставить это работать:
{ echo -n ‘user = «‘; cat password.txt; echo ‘»‘; }

Я нашел альтернативу (более простую?), которая работает, пока вы используете bash:

curl -u $(< password.txt) https://googles

более 1 года назад
·

гграндес

@geezer: хорошо, но -u user:${PASSWORD} отображается как user:xxxxx в ps
@ianab: то же самое для $(< password.txt)

более 1 года назад
·

рок

Спасибо за эти советы!
Причина, по которой пример с cat не работает, заключается в том, что cat выводит новую строку из файла.
При удалении новой строки будет работать код:
{ echo -n ‘user = «‘; cat password.txt | tr -d ‘\n’; echo ‘»‘; }
tr -d ‘\n’ удаляет новую строку из (конца) данных.

более 1 года назад
·

рок

После внимательного прочтения man curl оказывается, что на самом деле это может быть лучшим способом:
curl -K curlconfig. cfg http://www.googles

Затем вы вставляете эту строку в curlconfig.cfg (или любое другое имя файла, которое вам нравится):
user = «defn:password»

Работает как шарм. Кроме того, вы можете добавить в этот файл другие параметры скручивания, а также отдельные строки.

более 1 года назад
·

робин217

3 момента, которые следует учитывать при использовании этого совета:

Уточнение №1: используйте sed для экранирования любых встроенных двойных кавычек:

 только для чтения USERNAME=username
ПАРОЛЬ только для чтения = 'пар сс" слово $ слово'
curl -v -K- "https://httpbin.org/basic-auth/имя пользователя/pa%20ss%22wo%24rd" \
  <<<"пользователь: \"$(sed -E 's/"/\\"/g' <<<$USERNAME:$PASSWORD)\"" 

Уточнение № 2: используйте подстановку процесса вместо стандартного стандартного ввода

только для чтения USERNAME=имя пользователя
ПАРОЛЬ только для чтения = 'пар сс" слово $ слово'
curl -v -K <(echo -n "пользователь: \"$(sed -E 's/"/\\"/g' <<<$USERNAME:$PASSWORD)\"") "https://httpbin. org/basic-auth/username/pa%20ss%22wo%24rd"

Теперь STDIN доступен для предоставления данных POST при использовании опции --data @- .

более 1 года назад
·

робин217

В моем комментарии выше есть ошибка: я должен был использовать cat <<<"..." вместо echo "..."
Я уточнил свой ответ здесь: https://stackoverflow.com/a/66056079

более 1 года назад
·

Пароль пользователя базовой аутентификации curl

AlleVideosBücherBilderMapsNewsShopping

suchoptionen

Как мне отправить учетные данные базовой аутентификации с помощью Curl? - ReqBin

reqbin.com › req › curl-basic-auth-example

10.11.2022 · Чтобы отправить основные учетные данные аутентификации с помощью Curl, используйте параметр командной строки «-u логин: пароль». Curl автоматически преобразует логин: пароль ...

Как правильно определить базовую HTTP-аутентификацию с использованием cURL?

stackoverflow. com › вопросы › как-определить-...

Укажите имя пользователя и пароль для проверки подлинности сервера. Переопределяет -n, --netrc и --netrc-необязательно. Если вы просто укажете пользователя ...

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

Базовая команда авторизации для curl - Stack Overflow

Как установить заголовок авторизации с помощью cURL - Stack Overflow на русском0003

curl отправить базовую аутентификацию и аутентификацию пользователя веб-сайта в одном ...

Проверка подлинности на stackoverflow.com

-basic-auth

08.03.2023 · Ввод curl базовой аутентификации в командной строке поиска AI приводит к точному результату curl -u имя пользователя: URL-адрес пароля, который вы затем можете быстро ...

Экранирование специальных символов · Используйте https с curl

Ähnliche Fragen

Как передать основные учетные данные в curl?

Как передать имя пользователя и пароль для базовой аутентификации?

Как передать токен аутентификации в curl?

Как создать токен базовой аутентификации из имени пользователя и пароля в Linux?

Аутентификация — Everything curl

Everything. curl.dev › http › auth

Метод базовой аутентификации отправляет имя пользователя и пароль в виде открытого текста по сети (в кодировке base64), и его следует избегать для транспорта HTTP. Когда ...

Как отправить учетные данные Basic Auth с помощью cURL? - ScrapingBee

www.scrapingbee.com › webscraping-questions › ba...

Чтобы отправить учетные данные Basic Auth с помощью cURL, вам нужно использовать параметр -u с «логин: пароль», где «логин» и «пароль» являются вашими учетными данными.

Как использовать обычную аутентификацию с помощью curl? - DEV Community

dev.to › lucasg › как-использовать-основную-аутентификацию-wi...

06.02.2021 · О базовой аутентификации В базовой аутентификации HTTP-запрос содержит заголовок Authorization:. ... curl -u имя пользователя: пароль https://example.com.

Используйте -u аргумент user:pass) – Curl Cookbook - catonmat.net

catonmat.net › curl › use-basic-http-authentication

Эти рецепты curl показывают, как выполнять базовую авторизацию HTTP-сервера. Для этого используйте аргумент командной строки -u user:pass. Если вы пропустите пароль ...

Выполните базовую аутентификацию с помощью cURL с примерами - Code2care

code2care.org › howto › basic-auth-using-curl-exa...

13.12.2022 · В других случаях выполните обычную аутентификацию с помощью команды cURL, используйте параметр -u или --user, за которым следует user:password вместе с cURL ...

Как отправить базовые учетные данные с помощью curl? - Scrapingdog

www.scrapingdog.com › webscraping-problems › b...

Чтобы отправить учетные данные базовой аутентификации с помощью cURL, вы можете использовать флаг -u или --user, за которым следует имя пользователя и пароль, разделенные двоеточием. (:).

Curl Basic Auth — как это работает? | CCBill KB

ccbill.com › KB Home › Веб-разработка

25.08.2022 · Имя пользователя и пароль соединяются с помощью одного двоеточия (:). Имя пользователя может содержать любой специальный символ, кроме двоеточия.