如何使用curl将收到的cookie信息打印到stdout?
根据手册页,如果你使用' - '作为-c --cookie-jar选项的文件名,它应该将cookie打印到stdout.问题是我收到一个错误:
curl: option -: is unknown
我正在运行的命令的示例:
curl -c --cookie-jar - 'http://google.com'
Radu Rădeanu.. 35
您得到该错误是因为您以错误的方式使用该选项.当您在手册页中看到如下选项时:
-c, --cookie-jar
这意味着如果你想使用该选项,你必须使用-c
OR --cookie-jar
,而不是两者都使用!这两个是等价的,实际上-c
是缩写形式--cookie-jar
.手册页中有许多选项以相同的方式设计.
在你的情况下:
curl -c - 'http://google.com'
--cookie-jar
作为-c
选项的参数给出,因此,它被解释为文件名,而不是一个选项(如您所想),并且-
保持单独导致错误,因为curl
实际上没有这样的选项.
您得到该错误是因为您以错误的方式使用该选项.当您在手册页中看到如下选项时:
-c, --cookie-jar <file name>
这意味着如果你想使用该选项,你必须使用-c
OR --cookie-jar
,而不是两者都使用!这两个是等价的,实际上-c
是缩写形式--cookie-jar
.手册页中有许多选项以相同的方式设计.
在你的情况下:
curl -c - 'http://google.com'
--cookie-jar
作为-c
选项的参数给出,因此,它被解释为文件名,而不是一个选项(如您所想),并且-
保持单独导致错误,因为curl
实际上没有这样的选项.
删除"-c"
curl --cookie-jar - 'http://google.com'
您还尝试详细模式并查看cookie标头:
curl -v 'http://google.com'
您需要使用两个选项才能获取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