【发布时间】:2021-07-03 03:46:46
【问题描述】:
我正在开发一个IdP 和IdentityServer4,一切正常,但现在从安全角度来看,我想尽可能保证它的安全;所以我将所有的 cookie SameSite 设为 Strict,然后在以下情况下得到 HTTP error code 400:
- 用户
TestUser打开客户端应用A -
TestUser已登录客户端应用程序A -
TestUser从客户端应用程序注销A -
TestUser正在尝试再次登录客户端应用程序A(他/她点击客户端应用程序A中的登录按钮) - 此时,
TestUser重定向到我的IdP的登录页面,但只接收HTTP 400 error code并且没有显示其他详细信息来检查状态。
还有我的配置:
// Identity Cookie (Authentication cookie)
services.ConfigureApplicationCookie(options =>
{
// options.Cookie.Name = .....
options.Cookie.HttpOnly = true;
options.Cookie.SecurePolicy = CookieSecurePolicy.Always;
options.Cookie.SameSite = SameSiteMode.Strict; // <<<<<<<<<<<<<<<<<<<<<<<
options.SlidingExpiration = false;
// without expire time ~> session cookie. destroy after closing the browser
// options.ExpireTimeSpan = TimeSpan.FromSeconds(10000);
// options.Cookie.Expiration = TimeSpan.FromSeconds(1000);
});
如您所见,.AspNetCore.Identity.Application(应用程序 cookie)cookie 设置为 SameSite=Strict。如果SameSite 设置为Lax,一切正常,但在这种情况下SameSite=Strict 是怎么回事?
【问题讨论】:
标签: asp.net-core security cookies identityserver4 samesite