Как менеджеры паролей узнают, что я успешно вошел в систему?

Итак, вы знаете, как вам предоставляется экран входа в систему, а затем вы его заполняете, а затем браузер загружает следующую страницу? В этот момент каким-то образом появляется панель диспетчера паролей для LastPass, 1Password или какого-либо другого расширения с вопросом, хотите ли вы сохранить пароль. Как они узнают, что вы только что успешно вошли в систему??

  • Формы иногда отправляются, а иногда js перехватывает отправку формы и отправляет AJAX.
  • Ответ возвращается и может установить новый файл cookie, но иногда существующий файл cookie сеанса продолжает использоваться (позволяет атаковать фиксацию сеанса, но некоторые реализации делают это).
  • Новое местоположение загружается или перезагружается, но иногда вместо этого javascript перезагружает часть документа.

Но каким-то образом эти менеджеры паролей ОБНАРУЖИВАЮТ, что я успешно вошел на сайт! Как? Это потому, что я что-то ввел в поле пароля, а затем была отправлена ​​какая-то форма или отправлен какой-то сетевой запрос? Но как они узнают, что это удалось?

Кто-нибудь знаком с этими менеджерами паролей и может дать полезную информацию?

Причина, по которой я спрашиваю, заключается в том, что я хочу разработать расширение, которое определяет, когда вы вошли в систему, и каким-то образом пытается извлечь ваш идентификатор пользователя из службы. Это делается для того, чтобы автоматически делиться своим идентификатором пользователя с друзьями и сообщать им (с вашего разрешения), какие сайты вы часто используете.

Любые подсказки о методах извлечения идентификатора вошедшего в систему пользователя в службе также будут полезны.


person Gregory Magarshak    schedule 13.12.2016    source источник
comment
вау.. награда в 100 баллов и все потому, что ты не мог понять, как работать с гуглом... к стыду   -  person I wrestled a bear once.    schedule 21.12.2016
comment
Что позорно, так это утверждение, что вы однажды боролись с медведем под своим именем пользователя. Сомневаюсь, что медведь думал, что борется.   -  person Gregory Magarshak    schedule 22.12.2016
comment
Lmao хорошо сыграно грегори, хорошо сыграно   -  person I wrestled a bear once.    schedule 22.12.2016


Ответы (6)


В большинстве случаев они фактически не знают об успешном входе в систему. Им известно, что была отправлена ​​форма с полем пароля, и ответ был 200OK. Это все еще может быть страница с сообщением об ошибке.

Что касается извлечения идентификаторов пользователей, я уверен, что вы имеете в виду страницы профиля или что-то подобное. Это нужно будет делать на каждом сайте, поскольку сайты будут иметь свои собственные API и структуры маршрутов.

person AkkarinZA    schedule 14.12.2016

Поскольку кто-то уже ответил на этот вопрос, я с ним соглашусь.

В большинстве случаев они фактически не знают об успешном входе в систему. Они знают, что была отправлена ​​форма с полем пароля, и ответ был 200OK. Это все еще может быть страница с сообщением об ошибке.

Поскольку браузеры следят за тем, чтобы в запросе было поле пароля, а также код состояния ответа на запрос, но все же вы можете легко обмануть браузеры. Чтобы узнать об идентификаторе пользователя, вошедшего в систему, вам обязательно нужна поддержка бэкэнда / API. Это зависит от фреймворков аутентификации, используемых в серверной части. Но вы можете легко получить поля формы, но извлечение/нахождение идентификатора пользователя из полей формы - довольно сложная задача. В большинстве случаев форма будет иметь только два поля, и вы сможете получить идентификатор пользователя. Но в некоторых случаях, таких как банковские сайты, они будут отправлять несколько фиктивных полей и обманывать такие инструменты. В некоторых случаях идентификатор пользователя отличается от электронной почты, поэтому это сложная задача.

person Kiran Kumar    schedule 19.12.2016

Они только определяют, была ли форма отправлена, и был ли возвращен код 200 (ОК). Им не обязательно знать, вошли ли вы в систему, но этот метод работает на большинстве веб-сайтов. Они также могут определить, была ли впоследствии загружена новая страница, поскольку неудачный вход обычно не перенаправляет пользователя. Однако раньше у меня было приглашение сохранить неверный пароль.

person Leo Wilson    schedule 20.12.2016

Они могут обнаружить вашу текущую вкладку. и каждый элемент HTML этой страницы. Можем ли мы иметь список регистрационных страниц для обнаружения ключевых слов, таких как логин, имя пользователя, забытый пароль. и проверьте все ключевые слова, чтобы определить, что это страница входа.

Они просто готовые страницы и даже они могут прочитать ваш пароль (да).

Если вы сделали запрос с этой страницы и ответ будет 200ok, это означает, что ваш пароль правильный.

person Ankit vadariya    schedule 21.12.2016

Всякий раз, когда запрашивается сервер с именем пользователя и паролем, сервер проверяет эти две записи в своей базе данных, и сервер найдет ваши данные, он вернет код ответа 200 и, используя сценарий обратного вызова AJAX, поймает код ответа. и покажет успешное сообщение.

а также вернуть некоторую информацию, которую вы можете сохранить в локальном хранилище браузера или в файле cookie для дальнейшего использования.

person Sahadev    schedule 22.12.2016

Я создал пару страниц статического HTML и форму: поэтому, когда форма отправляется, она переходит на вторую страницу.

Let's test

<form action="test1.html">    
<input type="text" />
<input type="password" />    
<input type="submit" />    
</form>

</body>

Хром не беспокоил, ничего не произошло. В то время как Firefox выдал всплывающее окно для сохранения пароля, даже когда форма отправляется на страницу с ошибкой.

Таким образом, firefox ищет только форму, отправленную с полем пароля, и запрашивает всплывающее окно сохранения пароля.

Если вы хотите создать расширение, которое может проверить, успешно ли пользователь вошел в систему, а затем вы хотите запросить всплывающее окно для запоминания пароля. Для этого вы должны проверить ответ сервера. Я не мог создать динамическую страницу, чтобы проверить ее на примере браузера.

person Aamir Shahzad    schedule 23.12.2016