Comments 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 разрешение, но при этом довольно слабое железо) от самостоятельного рендеринга страниц через небольшой промежуток времени становится тёплым, а батарейка улетает на глазах.
+ При рендеренге страниц на клиенте страдает поисковая оптимизация, что зачастую критично.
мобилки — понятно. Но они постоянно наращивают свои мощности и потому это уже не имеет значения.
Если Ваш сайт не нацелен на узкую категорию пользователей, то имеет значение.
То, что топовые устройства наращивают свои мощности не означает, что перестают выпускаться устройства со слабым железом. И люди не перестают покупать их.
Не говоря уже о том, что многие просто используют свои старые аппараты и не видят смысла их менять, так как они их всем устраивают.
тот же рекламный кабинет на нем и почта новаяПочему тогда старая почта у него работает на порядок быстрее? ФБ, кста, у меня тормознее, чем ВК.
вероятно вы не веб-разработчик.
Как раз он самый.
скрипты на клиенте выполняются быстрее по одной причине — не прилетает большая куча хтмл.
HTML парится браузером, который написан на компилируемом языке и высоко оптимизирован для этой задачи.
Так же при перезагрузке страницы после того как прилетит весь хтмл — должны отработать скрипты.
И если их мало, это происходит весьма быстро.
Как раз все в плюсе: менеджеры, поисковые боты, пользователи. Но в минусе — функционал
А каждому ли заказчику нужен функционал в ущерб поисковой оптимизации и удобству пользователей?
Я говорю о скорости передачи данных а не о скорости отображения полученного хтмл
Ну и сколько же их экономится при клиентском рендеринге?
или все писали на хтмл?
Что значит писать на HTML? Я работаю с движками, где используются шаблоны.
Да, в скорости одной страницы выигрываю, но в конечном счете — нет.
Я понимаю, если бы вы продвигали серверный пререндеринг для первой страницы, а дальше скрипты. Но я от вас этого не услышал, ощущение, что вы об этом и не слышали.
Я уже об этом говорил. Может вообще все без жс писать?
К чему доведение до абсурда?
Но в минусе — функционал
Для 95% сайтов совершенно не нужный функционал.
при работе с клиентским рендерингом — мгновенно
Не мгновенно, вместо этого идёт рендер всей страницы на js, что для слабых устройств накладно.
+ При нормальной оптимизации обычной html страницы (вынесение скриптов в конец страницы и т.д.) она начинает рендериться и отображаться пользователю ещё до того, как прогрузятся и отработают все второстепенные скрипты.
Какой скрипт у вас грузится каждый раз заново?Где я написал про каждый раз? А страница наверняка динамическая, в каше не лежит, загружать через интернет.
избавиться от перезагрузки страниц помогаетНе помогает. Если страница периодически тупит и не реагирует, то единственный способ её быстро реанимировать — перезагрузить её. Делать приложение с клиентским рендерингом — сделать ещё хуже.
Сразу видно, что вы этими технологиями не особо интересуетесьЗато мне приходится ими пользоваться и я не в восторге от всех этих ваших приложений на JS в браузере.
5) Это удобно для пользователей
Нет. Вместо даже заполнения двух полей руками и нажатия отправить я должен заполнить поле, переключится на мышку для нажатия далее, заполнить ещё одно поле и уж тогда только авторизоваться.
Что дает постраничная форма:
Вызывает тонны ненависти. Особенно когда начинают вымогать номер телефона на последнем шаге, мол, раз уж потратил кучу времени на заполнение других полей, то бросать будет жалко. НЕНАВИСТЬ! Использую магическую комбинацию Ctrl+W для прекращения этого безобразия.
Да и вообще не думаю что менеджеры должны быть привязаны к дизайну.
Они не привязаны к дизайну. Они привязаны к разметке. Нужны человеческие input с человеческими name.
Что мешает нажать энтер?
Не всегда работает. А таб на одной странице работает намного чаще.
Не все так быстро сгорают как ты.
Ну та, есть люди по тепреливее меня.
Ой. А может перестанем использовать жс вообще?
Нет, но вот поддерживать работоспособность сайта без скриптов совсем не помешает.
И да, мой менеджер паролей прекрасно справляется с описанным в статье, а многостраничные формы и скрытие инпутов я считаю плохим совсем по другим причинам, которые я и озвучил выше.
1. Модальные окна не увеличивают количество шагов, могут иметь прямую ссылку и могут позволить работать менеджеру паролей.
2. Скрытые поля, при соблюдении некоторых условий тоже могли бы быть доступны для менеджера паролей.
3. Магическая ссылка это принципиально другой способ аутентификации и пока что не в зоне ответственности менеджера паролей (но это вопрос времени, банковские приложения тоже не сразу научились получать пароли из СМС).
1. не нужно придумывать качественный пароль
2. сразу проверяется email адрес
3. можно при регистрации сразу залогировать человека в систему (и отправить пароль на почту). Т.е. пароль ему потребуется только для второй сессии
1. не нужно придумывать качественный пароль
В итоге всё зависит только от пароля на почту.
2. сразу проверяется email адрес
Ну да, как же без сбора базы для спама.
3. можно при регистрации сразу залогировать человека в систему
Абсолютно ничего не запрещает логинить сразу при регистрации. Один минус — плохо работает с теми же менеджерами паролей. Поэтому я в таких случаях предпочитаю выйти и зайти по-нормальному.
Сбербанк и Госуслуги тоже двинулись в сторону этого ада.
До тех пор
Может я немного параноик но я не буду доверять свои пароли всяким менеджерам если такой менеджер не написал я сам и он вертится на моем сервере.
Пока я этого не сделал — использую метод генерации пароля по нескольким ключевым словам и цифрам и держу этот метод в голове.
Что касается форм, если сделать как предлагают автор — тогда никакие менеджеры паролей не нужны в принципе — справятся и встроенные в chrome/firefox хранилища паролей + синхронизация.
Keepass (и его варианты вроде KeepassXC) опенсорсный, формат его базы открытый, и крутится он на Вашем десктопе/телефоне, ничего не передавая по сети. Параноики довольны.
Что касается форм, если сделать как предлагают автор — тогда никакие менеджеры паролей не нужны в принципе — справятся и встроенные в chrome/firefox хранилища паролей + синхронизация.
Что, если я зарегистрировался в браузере, а потом хочу залогиниться в приложении?
Что, если я зарегистрировался в хроме, и хочу залогиниться в лисе?
Что, если я вообще не могу/хочу использовать сервис через браузер, а только через приложения?
И да, паранойя по безопасности менеджеров паролей и использование встроенных в браузеры менеджеров несколько не сочетаются.
Ладно. Но формы авторизации стали такими не просто так. И они решают конкретные задачи. А то что некоторые менеджеры паролей не могут с ними работать, то упс. Так что камень не в тот огород.
Но формы авторизации стали такими не просто так.
Чтобы выделиться среди других? Чтобы лучше вымогать номера телефонов?
Почему ты готов предоставить эмаил и не предоставить номер телефона?
Потому что я могу делать по мылу на каждый сервис. Потому что эмейл надёжнее. Потому что он анонимнее. Он просто лучше и удобнее.
с эмаилом гогол тоже может передавать данные фээсбэ по запросу
У меня нет постоянной учётной записи в гугле. И гражданином империи гогол я не являюсь.
Почему-то все смирились со спамом на почту одно время
Кто смирился? Сервисы прекрасно задерживают спам. В отличии от ОпСоСов, которые только и рады этому.
у тебя все привязан у номеру?
Эм, наоборот, никаких привязок не использую.
ВК
Не состою.
тогда думаю стоит в топе сидеть постоянно.
Не понял, о каком топе идёт речь, что за взломы и почему он не шифрует трафик.
надеюсь ты помнишь когда спам не фильтровался.
И все спам ненавидели, никто не мирился.
и мне на смс спам не сдали не разу — компаниям не выгодно с тарифами текущими.
Попробуйте оплатить номер с терминала киви, желательно замого замшелого и увешанного рекламой с видео.
Но речь конечно про нормальные ресурсы, а не мусорные, на бесплатных шаблонах WP. Там просто «мода».
А так — сколько людей, сколько мнений. Кому-то удобно одно, кому-то другое.
Ну и заявлять безапелляционно «не делайте так!» — тоже перегиб :-)
2. Очень даже можно скрывать поля, никто не говорит о том, что их надо удалять и вставлять при клике на лэйбл, а спрятать за плейсхолдером очень даже нужно
3. И в примере форма входа вордпресса начала 2000-х, которая черт знает когда последний раз обновлялась
Очень даже можно скрывать поля, никто не говорит о том, что их надо удалять и вставлять при клике на лэйбл, а спрятать за плейсхолдером очень даже нужно
Чтобы при фокусе на поле ввода и последующем отвлечении нельзя было понять, что это за поле?
3. И в примере форма входа вордпресса начала 2000-х, которая черт знает когда последний раз обновлялась
С тех пор она стала только удобнее, благодаря привычке.
3. И чем же она стала удобнее, имхо?
По поводу popup или отдельная страница — тут лучше чтобы были оба варианта в зависимости от сценария использования.
Что касается popup и того факта, что его скрипт таскается от страницы к странице — то в этом случае поможет code-splitting и например vue, который может работать и не как spa.
Изначально в статике ссылка на отдельную страницу (для тех у кого стоит NoScript), потом загружается vue и перехватывает событие нажатия и при нажатии на кнопку входа уже отдельно подгружает сам попап. В итоге все рады =)
- Есть вход для пользователей без js
- Попап не таскается туда-сюда вместе с его js+css+img
- loader логина не ест ничего пока не нажали на кнопку входа
- ??????
- PROFIT!
Претензии про менеджеры паролей необоснованы. Это и небезопасно. Уже были истории, когда сайты вставляли в содержимое мнимые формы, а менеджер их заполнял. Потом скрипт читал форму и слал данные на чужой сервер.
Насчет входа на сайт через почту, автор что-то перепутал. Вовсе не нужно копировать и вставлять одноразовый пароль, достаточно перейти по волшебной ссылке. Автор намеренно раписал эти действия как что-то долгое, а на самом деле это быстро: нажал на кнопку, альт-таб в почту, клик по ссылке — и ты на сайте. На мобиле еще проще — достаточно нажать на пуш-нотификацию почтовика.
А вот кастомные попапы на весь экран с подписками и соцсетями так не искоренить (
Ладно ещё когда скрывают пароль, но когда скрывают поля для ввода одноразовых кодов (TOTP, смс-ки) — вот это реально бесит, потому что, в отличие от пароля, при их вводе опечататься намного проще, а скрывать их смысла нет в принципе.
Не скрывайте поля
Скажите это той же VMWare, да и вообще большому числу сервисов. Им же «так красивее», блин!
Не разделяйте форму входа на несколько страниц
Скажите это Гуглу!
Ещё печалька, когда стоит запрет на copy/paste из/в поле ввода. Нечасто, но все ещё встречается.
Ещё раздражают формы логина с autocomplete="off". С такими встроенный в браузер менеджер паролей не работает.
К сожалению, это следствие общего одибиливания человечества. Люди перестают читать художественные книги, а значит мыслить простыми категориями. Программист, получив некие знания, теперь торопится воплотить их как можно скорее и где придется… А ведь надо-то всего лишь посидеть, подумать и сделать простую операцию простой.
Запреты на автовставку кроме раздражения, ИМХО, ничего не вызывают.
Так что я всё равно убеждён, что использование менеджеров паролей повышает безопасность.
Что касается разделения входа на несколько экранов, тут по-моему самым ярким представителем является accounts.google.com.
Не умничайте с формами для входа