WWW-Аутентификация при выходе из системы
-
19-09-2019 - |
Вопрос
Я заметил, что однажды Firefox выдает модальное сообщение в ответ на заголовок WWW-Authenticate в HTTP-ответе.Затем Firefox сохраняет имя пользователя / пароль до тех пор, пока Firefox не будет закрыт.Тот Самый Веб-разработчик подключаемый модуль позволяет людям, ориентированным на разработчиков, выйти из системы.Но какое HTTP-сообщение должно быть отправлено браузеру, чтобы потерять эти кэшированные учетные данные?
Решение 2
Я нашел разумный обходной путь.Это немного сложно, но работает очень хорошо.Я создал таблицу с полем GUID.Все начиналось без каких-либо записей.Вот решение:
- Пользователь нажимает кнопку "Выйти из системы".
- Сценарий выхода из системы добавляет GUID в новую таблицу.
- Сценарий выхода из системы перенаправляет пользователя на URL-адрес, содержащий GUID в качестве параметра.
- Когда пользователь переходит по URL-адресу с GUID в качестве параметра, система выполняет поиск GUID в таблице.
- Если GUID есть в таблице, удалите запись с GUID и укажите неверный код ответа на имя пользователя / пароль (даже если учетные данные в порядке).
- Если GUID отсутствует в таблице, проверьте учетные данные.
Хакеры могут быстро раздуть эту новую таблицу, поэтому убедитесь, что у каждого пользователя может быть только одна запись в таблице.Вы также могли бы использовать временные метки и выполнять пакетное задание для периодической обрезки таблицы.
Другие советы
Боюсь, нет способа корректно отправить браузеру приказ прекратить сохранение (и отправку в каждом http-запросе на ваш сервер) учетных данных, которые вы восстановили в начале навигации пользователя (через ответ http 401).
Firefox очистит свой кэшированный WWW-auth UN / PW с помощью 403 Forbidden
.
Chrome очистится с помощью 403 Forbidden
или 401 Not Authorized
.
Safari всегда подскажет вам, хотите ли вы кэшировать данные или нет.
IE - это какашки.