Комментарии 137
TL;DR;
Менеджеры паролей часто не работают
На самом деле в статье речь о встроенном в браузере менеджере, а их использование не рекомендуется по ряду причин (начиная с кучки инцидентов безопасности, и заканчивая тем, что пароли нужны не только для вебсайтов и не только в данном браузере). Тот же Keepass умеет работать с многостраничными формами и скрытыми полями — в нём можно настроить последовательность, которую он отправит в браузер, а-ля: передать username, нажать Enter, подождать 1 секунду (пока подгружается вторая страница), передать password, нажать Enter. Но это ничего не меняет — намного удобнее, когда нет необходимости для отдельных сайтов задавать такого рода уникальные настройки.
Ну конечно же, нет. Менеджер паролей предоставляет вам другую возможность авторизации на сайте, он больше ничего в себе не несёт. Сайт предоставляет вам контент, а если вам пришлось авторизовываться ради контента, значит он вам точно нужен (ну или не нужен, но вы об этом не знаете). Это вообще никак не влияет на аудиторию. На недовольство пользователей — да, но это другое.
Доход сайта напрямую зависит от удобства использования сайта. Сейчас почти на все есть аналоги, и вместо того чтобы мучаться с авторизацией я пойду на другой сайт и тем самым унесу с собой их деньги. Это в первую очередь их проблемы, это они зарабатывают на мне деньги. Это у них цель сделать сайт, чтобы было мне удобно.
А с подходом кому нужно, тот сам нас найдёт и придет бизнес долго не живёт или прозябает где-то на дне.
Да, сложность с формой регистрации может отпугнуть пару процентов аудитории, но для некоторых сайтов эти пара процентов это миллионы людей, а для некоторых у кого аудитория очень маленькая каждый человек на вес золота.
Примеров тому масса, в топ-10 магазинов в том числе.
А мы с вами, господин Jacen11, не являемся ЦА таких сайтов. А те сайты, которые мы вынуждены посещать, не зарабатывают на нас. Вооот.
Тот же Keepass умеет работать с многостраничными формами и скрытыми полями — в нём можно настроить последовательность, которую он отправит в браузер, а-ля: передать username, нажать Enter, подождать 1 секунду (пока подгружается вторая страница), передать password, нажать Enter.
Безусловно, только это тоже дополнительные костыли. Я много использую KeePass в работе, постоянно сталкиваюсь с необходимостью подстраивать подобные последовательности и каждый раз это тормозит и раздражает. Там, где всё могло бы просто работать «из коробки», приходится тратить по пять минут на отладку последовательности автовхода. Часто этим заниматься просто некогда/лень.
Я уж молчу, что огромная масса пользователей заниматься подобным в принципе не захочет.
Ненависть, других слов у меня просто нет.
Если я правильно понимаю механику, у гугла есть на то причины. У него реально двухстадийная операция. Сначала, по имени он определяет домен пользователя, относится ли он к Business Suite, а потом уже вычитывает политики авторизации (двухфакторка, экспайр пароля, наличие смартфона и подобное) и в зависимости от этого формирует следущий шаг, который может сильно отличаться от случая к случаю.
а что мешает спросить логин и пароль на одной форме, а все вышеперечисленное сделать в фоне проверить пароль (если надо) и, при необходимости, дозапросить остальное?
Есть сильное подозрение, что подавляющее большинство пользователей остаётся на самой простой схеме логин+пароль.
Есть сценарии, когда форма пароля не появится вообще. Это разные сценарии лока аккаунта. Наверное можно было спрашивать пароль в любом случае, а потом отшибать, но видать им кажется это лишним.
Насколько я знаю, такой вход обусловлен объединением учёток из разных источников. В зависимости от формата логина используются разные авторизационые формы
Менеджер паролей в хроме как минимум заполняет скрытые формы. Открываются они все таки отзывчивей.
И стоит знак вопроса с пояснением, под которым сложно кликнуть в значок заполнения от LastPass (да это можно сделать из другого места, но тем не менее с формы было бы быстрее):
Блин, ну хочется сделать подсказку, — вынесете её за пределы формы (вон у кнопки войти в самый раз будет), а саму форму можно сделать короче, — с неё не убудет. Хорошо, недавно сделали, что этот символ исчезает при :focus.
Но пароль, опять же, надо вводить в следующем окошке и там при :focus символ показать-скрыть пароль не исчезает и лично у меня не хватает ловкости, чтобы попасть мышкой в значок заполнения там и приходится идти более длинным путём:
Ну что мешает вынести за форму, я не понимаю. Нет, я согласен, что всякими менеджерами паролей пользуется безусловное меньшинство, но как-то это всё…
Есть стандарт форм и делать их по-человечески никто не мешает. Или давайте сайт будет делать вертикальные или вообще с наклоном черные формы без отображения символов, а остальные подстраиваются? Чего нет то? А — Адекватность. С — стандарты.
Вот гугл, они что, глупые и подстраиваются под ластпасс? Нет, они просто нормально верстают формы:
Никаких проблем с никакими значками нет и впомине. А вот это вот «пусть весь мир подстраивается под нашу унылую верстку», — это бред.
При всем уважении, менеджер паролей это все-таки довольно экзотичный класс софта.
Понимаю, что среди аудитории хабра намного более популярный, но в общем масштабе довольно редкий. Плюс в самом парке пасс-менеджеров каждый дышит как он слышит и особой стандартизации нет.
Поэтому совсем непонятно почему пчелки, букинг или кто-либо ещё должны подстраиваться под неумейки каких-то экзотических зверюшек?
Знаете сколько этапов нужно что бы войти в личный кабинет домашнего интернета привязанного к тарифу «всё»?
При этом между формами по 2-3 редиректа и ожидание в 2-5 секунд.
Ну и как вишенка на торте — в любой момент авторизация может зафейлится и придётся начинать сначала.
А после нескольких попыток ещё и с капчей.
Ю — Юзабилити ***.
Ещё можно упомянуть злобные капчи. Хотя это вообще отдельная тема.
Логин, пароль, а теперь докажи, что ты не робот. Пройди тест Тьюринга.
Особенно гугловские знаки-машинки. Очень стимулирует закрыть сайт и больше не возвращаться.
Кстати, есть какие либо боты или скрипты, для прохождения этой гадосьи автоматически?
Переводчику конечно же спасибо за труды, но вот с автором не согласен в некоторых моментах, я согласен что советы автора делают авторизацию более удобной при использовании менеджеров паролей. Но не нужно забывать, что каждое решение имеет предпосылки и решает какую-то задачу: усложнение брутфорса или ещё чего там. Иногда требуется компромис между удобством и решением некоторых задач.
Отсутствие перезагрузки страницы (меньше трафика)Враки. Теперь код для формы авторизации таскается за мной каждую страницу (больше трафика).
Быстрее работает сайт (опять же все сводится к загрузке страницы и отработке всех скриптов)Опять неправда. Теперь мне нужен ещё один скрипт (ага, на странице и так уже обвешанной всякими метриками, тоже наверно для скорости), который ещё нужно чтоб загрузился и выполнился, что срабатывает не всегда и теперь мне надо обновить всю страницу (больше трафика, увеличенное время ожидания результата).
пугает — большое количество полей на одной странице могут отпугнуть пользователя. В результате он бросит это дело;А ещё пользователя отпугивает бесконечное «Далее-Далее-Далее», где на каждой странице просят что-то ещё заполнить (сначала только логин/пароль, потом ФИО, потом адрес и всю родословную — желания сайта растут с каждой страницей, моё желание падает быстрее). Лично я так не делаю только если уж очень нужно попасть на сайт (заполнение анкеты на получение визы). В случае магазина — не проблема уйти в другой.
Одна страница: я могу прикинуть сколько это времени займёт и найти его.
Теперь код для формы авторизации таскается за мной каждую страницу (больше трафика).
А он разве не должен быть закэширован?
в итоге скорость чисто клиентского приложения выше чем при сервером рендере
Это если у клиента достаточно мощное железо, в противном случае часто всё печально.
Да, когда необходимо избавиться от необходимости перезагрузки страницы (к примеру, чтоб музыка не переставала играть при переходе по страницам сайта или когда реально необходимо постоянно частично перезагружать часть информации страницы) Ваш подход оправдан.
В остальных же случаях это усложнение ради усложнения.
Браузеру всё равно ждать ответ сервера, хоть в виде html, хоть в виде json, только в последнем случае ему потом ещё необходимо самому рендерить html на высокоуровневом языке (и тратить энергию на это, что критично для мобильных устройств) и уже только после этого подгружать новый контент для страницы (к примеру уникальные картинки для каждой из страниц).
Экономии трафика тут как таковой нет, т.к. объём html на фоне общего веса страницы минимален, да ещё и пережимается сервером перед отправкой, а весь остальной контент кешируется, если грузится неоднократно.
На слабых устройствах, да ещё и при слабом канале разница порой очень заметна.
К примеру, мой прежний телефон (1080 разрешение, но при этом довольно слабое железо) от самостоятельного рендеринга страниц через небольшой промежуток времени становится тёплым, а батарейка улетает на глазах.
+ При рендеренге страниц на клиенте страдает поисковая оптимизация, что зачастую критично.
мобилки — понятно. Но они постоянно наращивают свои мощности и потому это уже не имеет значения.
Если Ваш сайт не нацелен на узкую категорию пользователей, то имеет значение.
То, что топовые устройства наращивают свои мощности не означает, что перестают выпускаться устройства со слабым железом. И люди не перестают покупать их.
Не говоря уже о том, что многие просто используют свои старые аппараты и не видят смысла их менять, так как они их всем устраивают.
тот же рекламный кабинет на нем и почта новаяПочему тогда старая почта у него работает на порядок быстрее? ФБ, кста, у меня тормознее, чем ВК.
при работе с клиентским рендерингом — мгновенно
Не мгновенно, вместо этого идёт рендер всей страницы на js, что для слабых устройств накладно.
+ При нормальной оптимизации обычной html страницы (вынесение скриптов в конец страницы и т.д.) она начинает рендериться и отображаться пользователю ещё до того, как прогрузятся и отработают все второстепенные скрипты.
Какой скрипт у вас грузится каждый раз заново?Где я написал про каждый раз? А страница наверняка динамическая, в каше не лежит, загружать через интернет.
избавиться от перезагрузки страниц помогаетНе помогает. Если страница периодически тупит и не реагирует, то единственный способ её быстро реанимировать — перезагрузить её. Делать приложение с клиентским рендерингом — сделать ещё хуже.
Сразу видно, что вы этими технологиями не особо интересуетесьЗато мне приходится ими пользоваться и я не в восторге от всех этих ваших приложений на JS в браузере.
1. Модальные окна не увеличивают количество шагов, могут иметь прямую ссылку и могут позволить работать менеджеру паролей.
2. Скрытые поля, при соблюдении некоторых условий тоже могли бы быть доступны для менеджера паролей.
3. Магическая ссылка это принципиально другой способ аутентификации и пока что не в зоне ответственности менеджера паролей (но это вопрос времени, банковские приложения тоже не сразу научились получать пароли из СМС).
1. не нужно придумывать качественный пароль
2. сразу проверяется email адрес
3. можно при регистрации сразу залогировать человека в систему (и отправить пароль на почту). Т.е. пароль ему потребуется только для второй сессии
Сбербанк и Госуслуги тоже двинулись в сторону этого ада.
Может я немного параноик но я не буду доверять свои пароли всяким менеджерам если такой менеджер не написал я сам и он вертится на моем сервере.
Пока я этого не сделал — использую метод генерации пароля по нескольким ключевым словам и цифрам и держу этот метод в голове.
Что касается форм, если сделать как предлагают автор — тогда никакие менеджеры паролей не нужны в принципе — справятся и встроенные в chrome/firefox хранилища паролей + синхронизация.
Keepass (и его варианты вроде KeepassXC) опенсорсный, формат его базы открытый, и крутится он на Вашем десктопе/телефоне, ничего не передавая по сети. Параноики довольны.
Что касается форм, если сделать как предлагают автор — тогда никакие менеджеры паролей не нужны в принципе — справятся и встроенные в chrome/firefox хранилища паролей + синхронизация.
Что, если я зарегистрировался в браузере, а потом хочу залогиниться в приложении?
Что, если я зарегистрировался в хроме, и хочу залогиниться в лисе?
Что, если я вообще не могу/хочу использовать сервис через браузер, а только через приложения?
И да, паранойя по безопасности менеджеров паролей и использование встроенных в браузеры менеджеров несколько не сочетаются.
Ладно. Но формы авторизации стали такими не просто так. И они решают конкретные задачи. А то что некоторые менеджеры паролей не могут с ними работать, то упс. Так что камень не в тот огород.
А так — сколько людей, сколько мнений. Кому-то удобно одно, кому-то другое.
Ну и заявлять безапелляционно «не делайте так!» — тоже перегиб :-)
2. Очень даже можно скрывать поля, никто не говорит о том, что их надо удалять и вставлять при клике на лэйбл, а спрятать за плейсхолдером очень даже нужно
3. И в примере форма входа вордпресса начала 2000-х, которая черт знает когда последний раз обновлялась
По поводу popup или отдельная страница — тут лучше чтобы были оба варианта в зависимости от сценария использования.
Что касается popup и того факта, что его скрипт таскается от страницы к странице — то в этом случае поможет code-splitting и например vue, который может работать и не как spa.
Изначально в статике ссылка на отдельную страницу (для тех у кого стоит NoScript), потом загружается vue и перехватывает событие нажатия и при нажатии на кнопку входа уже отдельно подгружает сам попап. В итоге все рады =)
- Есть вход для пользователей без js
- Попап не таскается туда-сюда вместе с его js+css+img
- loader логина не ест ничего пока не нажали на кнопку входа
- ??????
- PROFIT!
Претензии про менеджеры паролей необоснованы. Это и небезопасно. Уже были истории, когда сайты вставляли в содержимое мнимые формы, а менеджер их заполнял. Потом скрипт читал форму и слал данные на чужой сервер.
Насчет входа на сайт через почту, автор что-то перепутал. Вовсе не нужно копировать и вставлять одноразовый пароль, достаточно перейти по волшебной ссылке. Автор намеренно раписал эти действия как что-то долгое, а на самом деле это быстро: нажал на кнопку, альт-таб в почту, клик по ссылке — и ты на сайте. На мобиле еще проще — достаточно нажать на пуш-нотификацию почтовика.
Ладно ещё когда скрывают пароль, но когда скрывают поля для ввода одноразовых кодов (TOTP, смс-ки) — вот это реально бесит, потому что, в отличие от пароля, при их вводе опечататься намного проще, а скрывать их смысла нет в принципе.
Не скрывайте поля
Скажите это той же VMWare, да и вообще большому числу сервисов. Им же «так красивее», блин!
Не разделяйте форму входа на несколько страниц
Скажите это Гуглу!
Ещё печалька, когда стоит запрет на copy/paste из/в поле ввода. Нечасто, но все ещё встречается.
Ещё раздражают формы логина с autocomplete="off". С такими встроенный в браузер менеджер паролей не работает.
К сожалению, это следствие общего одибиливания человечества. Люди перестают читать художественные книги, а значит мыслить простыми категориями. Программист, получив некие знания, теперь торопится воплотить их как можно скорее и где придется… А ведь надо-то всего лишь посидеть, подумать и сделать простую операцию простой.
Что касается разделения входа на несколько экранов, тут по-моему самым ярким представителем является accounts.google.com.
Не умничайте с формами для входа