【问题标题】:ARRAffinitySameSite cookies block my another cookiesARRAffinitySameSite cookie 阻止了我的另一个 cookie
【发布时间】:2021-07-08 14:45:22
【问题描述】:

我已经在 Azure 应用服务上部署了我的应用,并且我知道 Azure 提供 ARRAffinitySameSite cookie,但我还有另一个用于身份验证的 cookie,我们称之为“AUTH_COOKIE”。

在本地,我通过 AUTH_COOKIE 并在请求标头中看到它们(因为我没有任何其他 cookie),但在我发布的应用程序中,我有两个 cookie:AUTH_COOKIE 和 ARRAffinitySameSite,我的请求不想设置为AUTH_COOKIE 而不是 ARRAffinitySameSite。 我该如何解决?

return axios.get(`someUrl`, { params: { someParam}, withCredentials: true, headers: { 'Cookie': document.cookie } });

【问题讨论】:

  • ARRAffinityARRAffinitySameSite cookie 由 Azure 基础结构设置,以帮助平衡您的应用程序的负载。如果您的应用未扩展到多个实例,或者不使用进程内会话(例如),您可以从应用服务配置边栏选项卡(在常规设置下)禁用关联 cookie。由于这个 cookie 是用HttpOnly 标志发送的,它只能在服务器端读取,因此通常不应该从客户端代码中看到。通常,浏览器上存在的任何 cookie 都会随来自浏览器或 JS 代码的请求一起发送。

标签: c# asp.net cookies axios azure-web-app-service


【解决方案1】:

ARRAffinitySameSite 是一个安全 cookie,我们无法通过 javascript 读取它。

更多详情,请阅读下面的帖子和图片。

1. How to read a HttpOnly cookie using JavaScript

2. I need to get all the cookies from the browser

如果你想使用ARRAffinitySameSite 值,下面的代码是另一种选择。

【讨论】:

  • 阻止 JS 读取它的不是 Secure 标志,而是 HttpOnly 标志。这意味着它只能由接收服务器读取,而不是客户端代码。 Secure 规定 cookie 只能发送到使用安全传输(即 HTTPS)的页面。
猜你喜欢
  • 2021-06-13
  • 2020-06-02
  • 2022-07-27
  • 2020-12-09
  • 2020-12-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-18
相关资源
最近更新 更多