Мы обнаружили проблему в нашем приложении, когда Safari на Mac случайным образом воссоздает cookie-файл для входа из сеанса, в котором был выполнен выход из системы.
У меня есть архив Fiddler с таким поведением здесь . Обратите внимание, что некоторые вещи были удалены из этого, чтобы было легче получить их, но ничего, что устанавливает cookie или что-либо еще, не было удалено - только повторы запросов 3-8.
Я расскажу вам о порядке выполнения заказа
- Запрос 1: пользователь выходит из системы с помощью вызова /logout.aspx - Set-Cookie вернул установочную дату истечения срока действия cookie до 1999
- Запросы 2-8: пользователь обновляет страницу входа, отправляя вызовы root или /res/en-US/s.js - cookie не отправляется на сервер и не возвращается, и доступ запрещен. Я вырезал много запросов такого рода из журнала, так как они скучные
- Запрос 9: запрос на /res/en-US/s.js - cookie-файл аутентификации Hv3 загадочно появился! Wat. Не было никакого set-cookie! WTFF!
- Запрос 10+: теперь файл cookie снова появился, сайт снова регистрирует пользователя в системе
Файл cookie при проверке в Safari выглядит как
<dict>
<key>Created</key>
<real>259603523.26834899</real>
<key>Domain</key>
<string>.mysite.dev</string>
<key>Expires</key>
<date>2010-03-24T16:05:22Z</date>
<key>HttpOnly</key>
<string>TRUE</string>
<key>Name</key>
<string>.Hv3</string>
<key>Path</key>
<string>/</string>
</dict>
Следует отметить, что в Safari доменом cookie является .mysite.dev, а не mysite.dev (это домен cookie, указанный в web.config) - однако, учитывая, что в запросах 2-8 отказано в доступе, похоже, что срок годности куки истек. Если вы просматриваете список файлов cookie в браузере в течение 2-8 лет, файл cookie .Hv3 отсутствует.
Это наш баг или Safari?
Что я могу сделать, чтобы это не произошло?