WWW-аутентификация выхода
Я заметил, что как только Firefox выдает модальное сообщение в ответ на заголовок WWW-Authenticate в ответе HTTP. Затем Firefox сохраняет имя пользователя / пароль, пока Firefox не будет закрыт. Плагин для веб-разработчиков позволяет разработчикам выходить из системы. Но какое HTTP-сообщение нужно отправить браузеру, чтобы потерять эти кэшированные учетные данные?
3 ответа
Я нашел разумное решение. Это немного запутанно, но работает очень хорошо. Я создал таблицу с полем 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 это какашки.