加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

停止curl在302重定向上发送授权标头

发布时间:2020-12-14 01:53:42 所属栏目:Linux 来源:网络整理
导读:我使用curl连接到REST API. REST API在Authorization标头中使用Bearer令牌.所以我的curl调用看起来像这样: curl -H "Authorization: Bearer token" https://www.example.com/api 此API已开始返回302重定向以响应我的API调用. 我添加了-L选项以指示curl遵循
我使用curl连接到REST API. REST API在Authorization标头中使用Bearer令牌.所以我的curl调用看起来像这样:

curl -H "Authorization: Bearer <token>" https://www.example.com/api

此API已开始返回302重定向以响应我的API调用.

我添加了-L选项以指示curl遵循重定向:

curl -L -H "Authorization: Bearer <token>" https://www.example.com/api

现在curl确实执行重定向.

这是问题所在:curl正在发送自定义Authorization标头以及重定向.我已使用-v选项验证了这一点,因此它向我显示了它正在发送的标头.

新服务器(我认为是Windows Azure)实际上使用400状态代码失败,因为它不喜欢Authorization标头.重定向的URL根本不需要授权标头.

那么,如何让curl不在重定向上发送我的自定义Authorization标头?或者是否有另一种方法来指定将避免该问题的Authorization标头.

解决方法

这已在 curl 7.58.0中修复.具体是为了避免将凭据泄露到重定向位置.

使用curl 7.58.0它应该可以工作而不做任何更改.如果您仍想要传递凭据,则必须使用–location-trusted选项.

除了不使用-L选项,自己解析“位置”字段并对新位置执行单独请求之外,早期版本没有可用的解决方法. (如Matt Houser所述)

您可以在here中找到有关此更改的更多信息.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读