#http #authentication #nonce
#http #аутентификация #одноразовый
Вопрос:
Я пытаюсь реализовать одноразовую аутентификацию none для процесса аутентификации HTTP digest. Прежде всего, я осознаю тот факт, что аутентификация не является абсолютно безопасной. Пожалуйста, не советуйте мне использовать что-то другое. Процесс аутентификации работает как ожидалось. Когда пользователь успешно проходит аутентификацию, я добавляю поле http Authentication-Info со следующим одноразовым номером. Браузер, в данном случае Firefox, не использует этот одноразовый номер для дальнейших запросов.
Authentication-Info: nextnonce="06e8043d3fb8c26156829c4b55afd13040"
Почему браузер не использует мой новый одноразовый номер для будущих запросов? Он по-прежнему использует старую, теперь недействительную аутентификацию!
RFC7616 описывает поле заголовка. https://www.rfc-editor.org/rfc/rfc7616#section-3.5
Значение параметра nextnonce — это одноразовый номер, который сервер желает, чтобы клиент использовал для будущего ответа аутентификации. Сервер МОЖЕТ отправить поле заголовка Authentication-Info с полем nextnonce в качестве средства реализации одноразовых одноразовых запросов или иного изменения одноразовых запросов. Если присутствует поле nextnonce, …
RFC2617 описывает синтаксис в разделе 3.2.3
https://www.ietf.org/rfc/rfc2617.txt
[Править / править код]
Возможно ли, что firefox не поддерживает эту функцию. Если я буду искать здесь https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/WWW-Authenticate для поля заголовка я не могу найти результат.
Но здесь она указана как стандартный флаг заголовка:https://www.iana.org/assignments/message-headers/message-headers.xhtml
Ответ №1:
nextnonce
не поддерживается в Firefox, даже Authentication-Info
заголовок.
Ошибка «сбой проверки подлинности следующего одноразового дайджеста» была обнаружена 18 лет назад и до сих пор не исправлена.
Я загрузил исходный код последней версии Firefox 65.0.1 и провел поиск в проекте. «Информация об аутентификации» появляется только в netwerk/protocol/http/nsHttpDigestAuth.cpp
как комментарий, больше нигде.