web-dev-qa-db-ja.com

受信したCookie情報をcurlで標準出力にどのように印刷しますか?

受信したCookie情報をcurlで標準出力にどのように印刷しますか?

マニュアルページによると、-c --cookie-jarオプションのファイル名として「-」を使用すると、Cookieがstdoutに出力されます。問題は、エラーが発生することです:

curl: option -: is unknown

私が実行しているコマンドの例:

curl -c --cookie-jar - 'http://google.com'
28
Brian Yeh

そのオプションを間違った方法で使用するため、このエラーが発生します。 manページに次のようなオプションが表示された場合:

-c, --cookie-jar <file name>

つまり、そのオプションを使用する場合は、-c[〜#〜] or [〜#〜]を使用する必要があります。 --cookie-jar、決して両方!これら2つは同等であり、実際、-c--cookie-jarの省略形です。マニュアルページには、同じように設計された多くのオプションがあります。

あなたの場合:

curl -c - 'http://google.com'

--cookie-jar-cオプションの引数として指定されるため、オプションとは異なり(考えられるかもしれません)ファイル名として解釈され、-はそのまま残り、エラーになります。 curlには実際、そのようなオプションはありません。

31
Radu Rădeanu

「-c」を削除します

curl --cookie-jar - 'http://google.com'

また、冗長モードを試して、Cookieヘッダーを確認します。

curl -v 'http://google.com'
8

StdoutでCookieテキストのみを取得するには、2つのオプションを使用する必要があります。

--cookie-jar <file name> manページから「ファイル名を単一のダッシュ「-」に設定すると、Cookieはstdoutに書き込まれます」

--output <file> manページの「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

私のユースケース:OWASPの推奨事項に従って、WebサイトがHttpOnly Cookie設定を使用していることをテストします。

curl --silent --output /dev/null --cookie-jar - 'http://www.google.com/' | grep HttpOnly
7
gmoon