Я работаю над модулем проверки подлинности и авторизации, аналогичным тому, как выполняется пакетная замена. Теперь я уверен, что они используют определенную модель сервера генерации oAuth или маркера, которая разрешает использование их на разных сайтах. Я попробовал небольшой эксперимент.
Как только я войду в Stackoverflow, я удалю все свои файлы cookie с консоли разработчика.
Я оставляю объект localstorage неповрежденным, который содержит ключ se:fkey xxxxxxxxxxxxxxxxxxxxxxxxx
для домена stackoverflow.
имеется еще один ключ для домена stackauth GlobalLogin: xxxxxxxxxxxxxxxxxxxxxxx
se.fkey, если я использовал для захвата сессии, ничего не произошло. но GlobalLogin, я смог скопировать и захватить мою сессию. Итак, мой запрос будет, как S/O справится с авторизацией после авторизации для каждого из сайтов. Кроме того, существует ли способ сделать недействительным для globalLogin для них после его использования один раз?
{EDIT1}
Итак, достаточно только одного globalLogin
. Если вы можете получить этот ключ, просто откройте приватный экземпляр просмотра. В Localstorage для stackauth, когда вы находитесь на странице входа, создайте отображение key-value
и обновите страницу. Вы войдете в систему.
{EDIT2}
Клавиша globalLogin
кажется последовательной в нескольких сеансах. Это был день и не обновление моего ключа globalLogin
. Безопасно предположить, что если ваш ключ захвачен, у злоумышленника будет неограниченный доступ к вашему профилю.
{EDIT3}
Для всех, кто голосует, и будет голосовать за этот вопрос как не связанный с программированием вопрос. Позвольте мне сказать так: как сохранить SSO в веб-браузере с помощью localstorage безопасно, и поскольку они подвержены риску, что нам нужно предотвратить, чтобы это не произошло? Один из моих коллег был достаточно внимательным, чтобы дать мне свой ключ GlobalLogin, я смог захватить его сеанс с другого компьютера, хотя он был в той же сети.
PS: Это чисто теоретическое понимание того, что я сделал это.