Как вы печатаете полученную информацию cookie в stdout с помощью curl?
Как вы печатаете полученную информацию cookie в stdout с помощью curl?
Согласно man-страницам, если вы используете '-' в качестве имени файла для параметра -c --cookie-jar, он должен печатать файл cookie в stdout. Проблема в том, что я получаю сообщение об ошибке:
curl: option -: is unknown
пример команды, которую я запускаю:
curl -c --cookie-jar - 'http://google.com'
Ответы
Ответ 1
Вы получаете эту ошибку, потому что используете этот вариант неправильно. Когда вы видите на странице man такую опцию, как:
-c, --cookie-jar <file name>
это означает, что если вы хотите использовать этот параметр, вы должны использовать -c
ИЛИ --cookie-jar
, нигде не оба! Эти два эквивалентны и, по сути, -c
является сокращенной формой для --cookie-jar
. В man-страницах есть много и много вариантов, которые разработаны таким же образом.
В вашем случае:
curl -c - 'http://google.com'
--cookie-jar
задается как аргумент для параметра -c
, поэтому он интерпретируется как имя файла, а не как опция (как вы думаете), а -
остается в одиночестве, что приводит к ошибке, поскольку curl
, действительно, не имеет такого варианта.
Ответ 2
Удалите "-c"
curl --cookie-jar - 'http://google.com'
Также вы выполняете подробный режим и видите заголовки файлов cookie:
curl -v 'http://google.com'
Ответ 3
Вам нужно использовать два варианта, чтобы получить только текст cookie на stdout:
--cookie-jar <file name>
с man-страницы "Если вы установите имя файла в одну тире," - ", файлы cookie будут записаны в stdout"
--output <file>
на странице руководства "Запись вывода вместо stdout". Установите его /dev/null, чтобы выбросить его.
Также полезно --silent
Объединяя все это:
curl --silent --output /dev/null --cookie-jar - 'http://www.google.com/'
Вывод:
# Netscape HTTP Cookie File
# https://curl.haxx.se/docs/http-cookies.html
# This file was generated by libcurl! Edit at your own risk.
#HttpOnly_.google.com TRUE / FALSE 1512524163 NID 105=DownH33BKZnCsWJeGvsIC5cKRi7CPT3K3QjfUB-4js5xGw6P_6svMqU1yKlKOEu4XwL_TdddZlcMITefFGOtCCyzJNhO_7E9UMNpbQHja40IAerYP5Bwj-FhY1m35mZdvkVSmrg1pZPvH96IkVVVVVVVV
Мой прецедент: проверьте, что ваш сайт использует настройку cookie HttpOnly в соответствии с рекомендацией OWASP:
curl --silent --output /dev/null --cookie-jar - 'http://www.google.com/' | grep HttpOnly