当我将来自不同域的请求发送到 ASP.NET Core Web API 时,未发送仅 http 的 cookie?

问题描述 投票:0回答:1

当我从另一个域向服务器发送请求时,仅 http 的 cookie 不会发送到服务器。

我在登录时获得仅 http 的 cookie。来自同一域的一切正常,但是当我从另一个域向服务器发送请求时,仅 http 的 cookie 不会发送到服务器。

http cookies cors asp.net-core-webapi
1个回答
0
投票

Http-only cookie 被设计为客户端脚本(例如 JavaScript)无法访问,并且只能通过 HTTP 请求发送到服务器。 JavaScript Document.cookie API 无法访问具有 HttpOnly 属性的 cookie;它仅发送到服务器。

这意味着,即使您在从一个域登录期间收到仅 HTTP 的 cookie,另一域上的 JavaScript 也无法访问它。

当您从另一个域向服务器发送请求时,浏览器仍应在请求标头中包含该域的任何相关 cookie,包括仅 HTTP cookie。但是,如果请求是从在不同域上运行的客户端 JavaScript 发出的,则该 JavaScript 代码将无法访问仅限 HTTP 的 cookie。

此外,cookie 是基于域的,无论是否是 http-only。如果您的服务器为

aaa.com
域创建了 cookie,如果您从
bbb.com
访问服务器,该 cookie 仍然不会发送到服务器,因为如果您访问
aaa.com
,浏览器只会发送带有 cookie 的请求网站(cookie是针对
aaa.com
而不是
bbb.com
),甚至
aaa.com
bbb.com
是同一台服务器。

© www.soinside.com 2019 - 2024. All rights reserved.