如何使 curl 接受安全 cookie 公开的 http 连接
how to make curl accept secure cookies overt http connection
我正在使用 curl 连接到发回安全标记 cookie 的 http 服务器,我发现 curl 不处理此类 cookie(通过 http 连接接收的安全 cookie),换句话说:即使使用-c cookieFile
switch,这样的cookies是不会保存的。
解决方法是使用 -D
开关来保存所有 headers 然后手动(外部卷曲)从文件中读取 cookie 并将其设置在 curl 命令中以将其发送回服务器.
我想知道是否有可能(可能是我缺少一些 curl 选项)使 curl 支持此类 cookie?我试图查看 curl 手册,但对我的用例没有任何用处。
提前致谢,
TL;DR: 对于最新版本的 cURL,不再可能 使用 secure
属性保存 cookie结合 cookie 相关开关。
根据documentation cURL removed the ability to save cookies with the secure
attribute in order to satisfy the RFC draft draft-ietf-httpbis-cookie-alone-01。此 RFC 草案规定,如果所述 cookie 通过 HTTPS 传输,则 secure
cookie 仅应由 HTTP 客户端处理、保存或覆盖。
我刚刚偶然发现了完全相同的问题,所以我可以提供两种选择:
- 使用功能实现前的 cURL 版本
- cURL < v7.46.0
- 查看导致此行为的相应 Github issue
- 使用
curl -i
或 curl -D
手动转储 headers 并提取 cookie
- 保存所有
secure
cookie 并将它们保存在文件中的示例 cookies.txt
curl -i http://server.com | grep "Set-Cookie: " | sed 's/Set-Cookie: //g' > cookies.txt
现在,如果您不使用里面的饼干,那么饼干罐就毫无用处。特别是关于第二种选择,可能需要删除 Secure
属性以使 cURL 将保存的 cookie 发送回 Web 服务器。
我正在使用 curl 连接到发回安全标记 cookie 的 http 服务器,我发现 curl 不处理此类 cookie(通过 http 连接接收的安全 cookie),换句话说:即使使用-c cookieFile
switch,这样的cookies是不会保存的。
解决方法是使用 -D
开关来保存所有 headers 然后手动(外部卷曲)从文件中读取 cookie 并将其设置在 curl 命令中以将其发送回服务器.
我想知道是否有可能(可能是我缺少一些 curl 选项)使 curl 支持此类 cookie?我试图查看 curl 手册,但对我的用例没有任何用处。
提前致谢,
TL;DR: 对于最新版本的 cURL,不再可能 使用 secure
属性保存 cookie结合 cookie 相关开关。
根据documentation cURL removed the ability to save cookies with the secure
attribute in order to satisfy the RFC draft draft-ietf-httpbis-cookie-alone-01。此 RFC 草案规定,如果所述 cookie 通过 HTTPS 传输,则 secure
cookie 仅应由 HTTP 客户端处理、保存或覆盖。
我刚刚偶然发现了完全相同的问题,所以我可以提供两种选择:
- 使用功能实现前的 cURL 版本
- cURL < v7.46.0
- 查看导致此行为的相应 Github issue
- 使用
curl -i
或curl -D
手动转储 headers 并提取 cookie- 保存所有
secure
cookie 并将它们保存在文件中的示例cookies.txt
curl -i http://server.com | grep "Set-Cookie: " | sed 's/Set-Cookie: //g' > cookies.txt
- 保存所有
现在,如果您不使用里面的饼干,那么饼干罐就毫无用处。特别是关于第二种选择,可能需要删除 Secure
属性以使 cURL 将保存的 cookie 发送回 Web 服务器。