【问题标题】:How do you print received cookie info to stdout with curl?如何使用 curl 将收到的 cookie 信息打印到标准输出?
【发布时间】:2014-02-23 04:27:45
【问题描述】:

如何使用 curl 将收到的 cookie 信息打印到标准输出?

根据手册页,如果您使用“-”作为 -c --cookie-jar 选项的文件名,它应该将 cookie 打印到标准输出。问题是我得到一个错误:

curl: option -: is unknown

我正在运行的命令示例:

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

【问题讨论】:

    标签: bash unix cookies curl


    【解决方案1】:

    去掉“-c”

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

    您还可以尝试详细模式并查看 cookie 标头:

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

    【讨论】:

      【解决方案2】:

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

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

      这意味着如果你想使用那个选项,你必须使用-c OR --cookie-jar,永远不要同时使用!这两个是等价的,事实上,-c--cookie-jar 的缩写形式。手册页中有很多很多以相同方式设计的选项。

      在你的情况下:

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

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

      【讨论】:

        【解决方案3】:

        您需要使用两个选项来仅获取标准输出上的 cookie 文本:

        --cookie-jar &lt;file name&gt; 来自手册页:

        如果您将文件名设置为单个破折号“-”,cookie 将被写入标准输出。

        --output &lt;file&gt; 来自手册页:

        将输出写入而不是标准输出。

        将其设置为 /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
        

        【讨论】:

          【解决方案4】:

          您可以使用以下命令保存收到的 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 罗纳尔多

          【讨论】:

            猜你喜欢
            • 2013-05-01
            • 1970-01-01
            • 1970-01-01
            • 2020-06-25
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2016-04-29
            相关资源
            最近更新 更多