Добавьте флаг httpOnly к файлам cookie стека служб ss-id/ss-pid
Я работаю над автономной службой Windows HTTP с использованием стека служб, у меня есть запрос на реализацию базовой аутентификации (имя пользователя / пароль) для аутентификации вызывающих приложений. Это код, который я использую сейчас, и он работает нормально:
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");
Когда я проверяю заголовок ответа, приходящий от моего сервиса, я ясно вижу, что он содержит 2 куки:
Набор-cookie: ss-id=dT8Yy6ejhgfjhgfkVvcxcxCNtngYRS4; путь =/
Набор cookie: ss-pid=p4lsgo18JhYF4CTcxkhgkhgffRZob; путь =/; срок действия истекает пт, 9 января 2037 12:17:03 GMT
Мне нужно настроить ServiceStack, чтобы добавить; httpOnly помечать эти куки в целях безопасности, но я не могу найти, как это сделать.
Так, ребята, у кого-нибудь есть идеи, как это сделать? любая идея очень приветствуется.
Заранее спасибо за помощь:)
1 ответ
Вы можете контролировать, HttpOnly
флаг установлен на Cookies с Config.AllowNonHttpOnlyCookies
который по умолчанию false
так бы всегда задавали HttpOnly
флаг. К сожалению, этот параметр был проигнорирован для собственных хостов, которые теперь разрешаются с этим коммитом, который теперь будет заполняться HttpOnly
флаг для всех файлов cookie по умолчанию.
Это изменение доступно с v4.5.5+, которое теперь доступно на MyGet.