如何使用curl将收到的cookie信息打印到stdout?
根据手册页,如果你使用' - '作为-c --cookie-jar选项的文件名,它应该将cookie打印到stdout。问题是我收到了错误:
curl: option -: is unknown
我正在运行的命令的一个示例:
curl -c --cookie-jar - 'http://google.com'
答案 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 罗纳尔多