将 httpOnly 标志添加到 ss-id/ss-pid servicestack cookie
Add httpOnly flag to ss-id/ss-pid servicestack cookies
我正在使用服务堆栈开发 self-hosted windows HTTP 服务,我请求实施基本身份验证 (username/password) 以对调用应用程序进行身份验证。这是我现在正在使用的代码,它工作正常:
Plugins.Add(new AuthFeature(() => new AuthUserSession() {},
new IAuthProvider[] { new BasicAuthProvider() })); //CustomBasicAuthProvider()
container.Register<ICacheClient>(new MemoryCacheClient());
var userRepository = new InMemoryAuthRepository();
container.Register<IUserAuthRepository>(userRepository);
string hash;
string salt;
new SaltedHash().GetHashAndSaltString("passwordinhere", out hash, out salt);
userRepository.CreateUserAuth(new UserAuth()
{
Id = 1,
DisplayName = "userdisplayname",
UserName = "usernameinhere",
PasswordHash = hash,
Salt = salt
}
, "app");
当我检查来自我的服务的响应 header 时,我清楚地看到它包含 2 个 cookie:
Set-Cookie: ss-id=dT8Yy6ejhgfjhgfkVvcxcxCNtngYRS4;路径=/
Set-Cookie: ss-pid=p4lsgo18JhYF4CTcxkhgkhgffRZob;path=/;expires=2037 年 1 月 9 日,星期五 12:17:03 GMT
出于安全目的,我需要配置 ServiceStack 以将 ;httpOnly 标志添加到这些 cookie,但我找不到如何操作。
伙计们,有人知道如何做到这一点吗?欢迎任何想法。
提前感谢您的帮助:)
您可以使用 Config.AllowNonHttpOnlyCookies
控制是否在 Cookie 上设置 HttpOnly
标志,默认情况下为 false
,因此始终会设置 HttpOnly
标志。不幸的是,自托管忽略了此设置,现在已通过 this commit 解决,现在默认情况下将为所有 Cookie 填充 HttpOnly
标志。
此更改适用于 v4.5.5+,即现在 available on MyGet。
我正在使用服务堆栈开发 self-hosted windows HTTP 服务,我请求实施基本身份验证 (username/password) 以对调用应用程序进行身份验证。这是我现在正在使用的代码,它工作正常:
Plugins.Add(new AuthFeature(() => new AuthUserSession() {},
new IAuthProvider[] { new BasicAuthProvider() })); //CustomBasicAuthProvider()
container.Register<ICacheClient>(new MemoryCacheClient());
var userRepository = new InMemoryAuthRepository();
container.Register<IUserAuthRepository>(userRepository);
string hash;
string salt;
new SaltedHash().GetHashAndSaltString("passwordinhere", out hash, out salt);
userRepository.CreateUserAuth(new UserAuth()
{
Id = 1,
DisplayName = "userdisplayname",
UserName = "usernameinhere",
PasswordHash = hash,
Salt = salt
}
, "app");
当我检查来自我的服务的响应 header 时,我清楚地看到它包含 2 个 cookie:
Set-Cookie: ss-id=dT8Yy6ejhgfjhgfkVvcxcxCNtngYRS4;路径=/
Set-Cookie: ss-pid=p4lsgo18JhYF4CTcxkhgkhgffRZob;path=/;expires=2037 年 1 月 9 日,星期五 12:17:03 GMT
出于安全目的,我需要配置 ServiceStack 以将 ;httpOnly 标志添加到这些 cookie,但我找不到如何操作。
伙计们,有人知道如何做到这一点吗?欢迎任何想法。
提前感谢您的帮助:)
您可以使用 Config.AllowNonHttpOnlyCookies
控制是否在 Cookie 上设置 HttpOnly
标志,默认情况下为 false
,因此始终会设置 HttpOnly
标志。不幸的是,自托管忽略了此设置,现在已通过 this commit 解决,现在默认情况下将为所有 Cookie 填充 HttpOnly
标志。
此更改适用于 v4.5.5+,即现在 available on MyGet。