Что мешает логике браузера "запомнить логин"?

Для веб-сайтов, которые имеют поля ввода имени пользователя / пароля, браузер обычно предлагает запомнить их для вас (в моем случае Safari помещает их в мою цепочку ключей OS X).

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

Обнаруживают ли браузеры, когда предлагать запомнить их, с помощью эвристики "похоже ли это на имя пользователя / пароль" и иногда не работают?

Как это работает за кулисами?


Изменить: Товарищи пользователи Safari, проверьте это комбо:

http://8-p.info/greasekit/

http://userscripts.org/scripts/show/8021

http://userscripts.org/scripts/show/28696

3 ответа

Решение

В форме есть атрибут 'autocomplete="off" (официально не в HTML4, но обычно поддерживается).

Попробуйте это:

<form id="loginForm" action="login.cgi" method="post" autocomplete="off">

Вы могли бы использовать <FORM METHOD="post" ACTION="action.cgi" AUTOCOMPLETE="off"> но это работает только в IE, я думаю.

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

Другая стратегия состояла бы в том, чтобы не использовать type="password", поскольку браузер использует это для идентификации поля в качестве пароля - однако, это не очень хорошая идея, поскольку пароль не будет скрыт, когда пользователь вводит его в форму. Любой javascript для эмуляции этого не будет выполнен, если JS был отключен.

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

Другие вопросы по тегам