Добавьте флаг 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.

Другие вопросы по тегам