如何使用curl将收到的cookie信息打印到stdout?

时间:2014-01-30 17:46:31

标签: bash unix cookies curl

如何使用curl将收到的cookie信息打印到stdout?

根据手册页,如果你使用' - '作为-c --cookie-jar选项的文件名,它应该将cookie打印到stdout。问题是我收到了错误:

curl: option -: is unknown

我正在运行的命令的一个示例:

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

4 个答案:

答案 0 :(得分:29)

您收到该错误,因为您以错误的方式使用该选项。当您在手册页中看到如下选项时:

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

这意味着如果您想使用该选项,则必须使用-c --cookie-jar,而不是两者都使用!这两个是等价的,事实上,-c--cookie-jar的缩写形式。手册页中有许多选项以相同的方式设计。

在你的情况下:

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

--cookie-jar作为-c选项的参数给出,因此,它被解释为文件名,而不是一个选项(如您所想),并且-保持独立,导致错误,因为curl确实没有这样的选择。

答案 1 :(得分:6)

删除“-c”

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

您也可以尝试详细模式并查看cookie标题:

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

答案 2 :(得分:6)

您需要使用两个选项才能获得stdout上的cookie文本:

手册页中的

--cookie-jar <file name>“如果您将文件名设置为单个短划线' - ',则cookie将写入stdout”

手册页“将输出写入而不是标准输出”中的

--output <file>。将它设置为/ 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推荐测试您的网站使用HttpOnly cookie设置:

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

答案 3 :(得分:5)

您可以保存收到的cookie,并使用以下命令将其发送回服务器:

1)要将cookie获取/保存到文件“ /tmp/cookies.txt”:

curl -c /tmp/cookies.txt http://the.site.with.cookies/

2)要将cookie发送回服务器(再次使用文件“ /tmp/cookies.txt”):

curl -b /tmp/cookies.txt http://the.site.with.cookies/

我希望它有用。

[] s 罗纳尔多