如何清除cookie上的HttpOnly标志

本文关键字:cookie 上的 HttpOnly 标志 清除 何清除 | 更新日期: 2023-09-27 18:08:22

我似乎遇到了与很多人相反的问题。许多问题都是关于为什么他们的cookie失去了HttpOnly设置。我想弄明白为什么我的那个一直挂在那里。

我正在使用ServiceStack编写代理服务,允许jQuery ajax调用与不实现JSONP或CORS的服务器跨域工作(不用担心,这实际上是一个合法的项目)。当接收到包含cookie的响应时,我将其复制到response对象,如下所示:

传入饼干:

Set-Cookie: MYAPI=8579...05B1; expires=Thu, 10-Apr-2014 13:08:18 GMT; path=/
如你所见,没有HttpOnly标志。然后复制cookie,如下所示:
var cookies = client.CookieContainer.GetCookies(new Uri(apiUrl));
foreach (Cookie cookie in cookies)
{
    cookie.HttpOnly = false;
    cookie.Domain = "";
    Response.Cookies.AddCookie(cookie);
}

然后返回响应。所有数据都正确通过,但cookie最终为:

Set-Cookie: MYAPI=8579...05B1; expires=Thu, 10-Apr-2014 13:08:18 GMT; path=/; HttpOnly

我已经织网了。配置如下:

<httpCookies httpOnlyCookies="false"/>

关于为什么HttpOnly标志被设置,以及如何绕过它的任何想法?我确实在某个地方读到ServiceStack默认设置HttpOnly,但无法看到如何取消设置。

如何清除cookie上的HttpOnly标志

一个配置设置,AllowNonHttpOnlyCookies已被添加到ServiceStack来应对这种情况。默认设置为false(强制HttpOnly cookie)。