WSO2 API Manager 拒绝设置不安全的标头“Cookie”

Posted

技术标签:

【中文标题】WSO2 API Manager 拒绝设置不安全的标头“Cookie”【英文标题】:WSO2 API Manager Refused to set unsafe header "Cookie" 【发布时间】:2018-01-17 07:40:36 【问题描述】:

我正在使用 wso2 api manager(版本 2.1.0)来公开一些 rest api。我需要将“Cookie”作为标题发送到我的其他一些 API。我使用“API Manager store”来测试 rest api (https://localhost:9443/store) 。但是当我将 Cookie 设置为标头请求时,我在浏览器中看到此日志并调用失败:

拒绝设置不安全的标头“Cookie”

但是当我使用“customHeader”之类的任何其他标题时,它可以正常工作。

在 API_HOME/repository/conf/api-manager.xml 中,我更改了这一行:

<Access-Control-Allow-Headers>Cookie,customHeader,authorization,Access-Control-Allow-Origin,Content-Type,SOAPA</Access-Control-Allow-Headers>

我还在 api manager 发布者 (https://localhost:9443/publisher) 中启用了“启用基于 API 的 CORS 配置”

我真的沉迷于此。 有没有办法在 api manager 中设置 Cookie 头?

提前致谢

【问题讨论】:

【参考方案1】:

其实你不能这样设置 Cookie 标头。

浏览器限制了您创建 cookie 的方式,允许您仅为特定域和路径以及特定过期时间设置 cookie。

Cookie头是定义给请求域和路径的所有头的集合,所以你不能直接覆盖这个头。

设置 HTTP Cookie 涉及发送带有您要设置的值的 Set-Cookie 标头。

看看这个:

5.4. The Cookie Header 4.1. Set-Cookie HTTP cookies explained

【讨论】:

非常感谢。我终于通过使用消息中介解决了这个问题。在发布者中我启用了消息中介,然后设置了一个“In Flow”消息。在这个中介中,我设置了我的自定义标头。 请您分享您的中介政策以了解如何设置 cookie?

以上是关于WSO2 API Manager 拒绝设置不安全的标头“Cookie”的主要内容,如果未能解决你的问题,请参考以下文章

WSO2 API Manager代码问题漏洞(CVE-2022-29464)

WSO2 API Manager代码问题漏洞(CVE-2022-29464)

WSO2 API Manager将JSON转换为XML(并且失败了请求)

WSO2 API Manager无法正确响应API

wso2 api manager外部api发布和订阅示例

使用 WSO2 Identity Server 和 WSO2 API Manager 保护后端