【问题标题】:How can I prevent sharing Cookies on subdomains如何防止在子域上共享 Cookie
【发布时间】:2021-10-05 03:07:42
【问题描述】:

2 天以来,我一直在尝试阻止子域之间的 cookie 共享。当我登录一个特定的子(域)时,包括一级域,它也会将cookie直接设置到其他子(域)。

我想分离这些子(域)的登录过程。

我的 ConfigureServices 方法的 cookie 设置如下:

services.AddAuthentication(options =>
{
    options.DefaultSignInScheme = JwtBearerDefaults.AuthenticationScheme;
    options.DefaultAuthenticateScheme = CookieAuthenticationDefaults.AuthenticationScheme;
    options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
})
.AddCookie(CookieAuthenticationDefaults.AuthenticationScheme, options =>
{
    options.LoginPath = "/token";
    options.Cookie.IsEssential = true;
    options.SlidingExpiration = true;
    options.ExpireTimeSpan = TimeSpan.FromDays(1);
    options.Cookie.HttpOnly = true; 
    options.Cookie.Name = "AuthCookie";
    options.Cookie.SameSite = SameSiteMode.Strict;
    options.Cookie.SecurePolicy = CookieSecurePolicy.None;
})

我尝试了几个选项,例如 options.Cookie.Domain = "mydomain.com"options.Cookie.Domain = "" 没有前导 .,但我仍然没有成功。

【问题讨论】:

标签: vue.js asp.net-core asp.net-web-api cookies jwt


【解决方案1】:

据我所知,默认情况下app.example.comwww.example.com 将被视为同一个站点。

这是浏览器的默认行为,但公共后缀列表会稍微改变此验证行为。

为浏览器创建公共后缀列表以更改其同站点验证行为。

浏览器会根据这个列表判断一个特定的URL是否属于这种类型。

如果您愿意,可以将您的域提交到此列表。

更多细节,你可以参考这个article

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-23
    • 2020-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-31
    相关资源
    最近更新 更多