22 декабря 2015
5 января 2010
33
Не прячьте пароли от пользователей
Как и обещал в новогоднем посте, начинаю серию статей о юзабилити. Для начала будет несколько статей с сайта useit.com, а там посмотрим.
Сегодня у нас заметка Якоба Нильсена полугодовалой давности про поля для ввода паролей. В оригинальной статье довольно много ссылок на другие его материалы, их я буду по мере появления заменять ссылками на переводы на нашем сайте. Поехали!
Если пользователь в процессе ввода пароля видит черные кружочки вместо самого пароля, то это не очень-то дружественный интерфейс. Как правило, скрывание пароля не повышает уровень безопасности, но при этом может нанести ущерб вашему бизнесу, если пользователя запарят ошибки при вводе.
В наше время пора перестать закрывать вводимый пароль буллитами. Обеспечение обратной связи и отображение текущего состояния системы всегда были одними из десяти главных принципов юзабилити, а демонстрация пользователю черных кружочков во время ввода сложных паролей типа saDgu23_4liAsd не очень-то им соответствует.
Напомню эти десять принципов (Ten Usability Heuristics)
- Отображение текущего состояния системы;
- Связь между строением системы и реальным миром (система должна говорить с пользователем на его языке, словами, фразами и идеями, понятными пользователю, а не на на языке роботов);
- Контроль и свободу — пользователям (люди часто тыкают не то, что им нужно, помните об этом и припасите для них простой и понятный путь отступления вроде кнопок «отменить ввод» и «повторить ввод» в текстовых редакторах);
- Постоянство и стандартизация (не надо путать людей людей, называя одними и теми же словами разные вещи или реализуя сходные задачи с помощью разных принципов способов взаимодействия);
- Предотвращение ошибок (например, диалоги подтверждения при удалении данных);
- Узнавание вместо вспоминания (меньше нагружайте юзеровы мозги, подсказывайте, как работает та или иная функция, делайте интерфейс более визуальным и очевидным, чтобы пользователю не приходилось вспоминать или, того хуже, гадать, что же там делает кнопка «Изменить»);
- Адаптация под уровень пользователя (продвинутые способы взаимодействия, неактуальные для новичков, могут сильно ускорить и упростить работу опытным пользователям);
- Эстетичность и лаконичность (не суйте в интерфейс вещи, которые не относятся к делу);
- Помогайте пользователям при ошибках (сообщения об ошибках вполне могут быть написаны на человеческом языке, вот и пишите их для людей, указывая при этом не только суть ошибки, но и как ее устранить);
- Хелпы и документация (ясное дело, что лучше сделать систему, которой можно пользоваться, не прибегая к помощи документации, но документация должна быть, и притом должна быть легкодоступной).
Большинство сайтов и приложений скрывают вводимые пароли буллитами. Теоретически, это защищает от подглядывания из-за спины. К сожалению, ловкий человек, глядя на клавиатуру, сможет определить, какие клавиши вы нажимаете, а значит, и какие символы вводите. Так что скрывание паролей не гарантирует вам защиту даже от любопытных Варвaр, не говоря уж о более подготовленных злоумышленниках.
Более того, как правило, никто и не смотрит вам через плечо, в надежде отхватить ценнейший пароль вашего Вконтакта. Оглянитесь — там никого. Вы в одиночку сидите за своим столом в офисе или дома, страдая от того, что пароль приходится вводить дважды или трижды.
Цена скрывания паролей
Когда мы проводили тестирование юзабилити мобильных телефонов (Mobile Usability), скрывание паролей оказалось настоящей проблемой, так как на мобильниках вводить текст труднее и опечатки там не редкость. Однако, и у пользователей компьютеров оно вызывает затруднения.
При скрывании паролей возникает две проблемы, одна из которых ухудшает защищенность:
- Пользователи совершают больше ошибок, когда не могут видеть, что они вводят. Как следствие, они чувствуют себя менее уверенно. Это, можно сказать, двойное ухудшение пользователького опыта может привести к тому, что в какой-то из разов человек сдастся и вообще не захочет больше работать с вашим сайтом. Или к увеличению звонков в саппорт, если говорить об интранетах. В обоих случаях, у вас или вашего клиента есть шанс потерять в деньгах.
- Чем менее уверенно пользователи чувствуют себя при вводе паролей, тем больше они склонны а) использовать более простые пароли и/или б) копипастить пароли из файла на компьютере. Оба варианта ведут к снижению защищенности.
Да-да-да, иногда ваш пароль и правда могут подглядеть, например, когда вы работаете в интернет кафе. На подобный случай можно предусмотреть чекбокс для включения маски. Для приложений, требующих более серьезной степени защищенности, можно даже сделать этот чекбокс отмеченным по дефолту (когда юзабилити соперничает с защищенностью, защищенности иногда следует побеждать).
В большинстве же случаев люди будут вам признательны за то, что им видно, какие буквы они вводят. Ваш бизнес пойдет в гору и даже безопасность слегка улучшится.
Забейте на традицию
Скрывание паролей стало обычным делом исключительно по двум причинам:
- его легко реализовать
- и оно было дефолтным в ранние годы интернета.
В этом отношении оно схоже с другой юзабилити-проблемой — кнопкой «Отменить» в вебформах, которой тоже пора бы скончаться (Reset and Cancel Buttons).
В общем и целом я советую следовать стандартам: делайте систему такой, какой люди ожидают ее видеть, и тогда они смогут сконцентрироваться на вашем продукте, а не на борьбе с интерфейсом. Но скрывание вводимого пароля и кнопка «Отмена» в формах — не те вещи, которых жаждут пользователи. Никто не расстроится, если они будут заменены: на простой текст в случае паролей и на пустое место в случае кнопки «Уничтожить все, что я только что сделал».
Давайте сделаем веб чуточку понятнее, удалив вещи, которые до сих пор существуют лишь потому, что они существуют давно.
фу!
"когда юзабилити соперничает с защищенностью, защищенности иногда следует побеждать"
Эта фраза вообще убила напрочь. Т.е. ради юзабилити можно забивать на безопасность, пусть будет удобно, и пусть нас ломают, крадут у пользователей аккаунты и т.д. Как было сказано выше мудак, ваш Нильсен.
С мобильниками тоже не всё так плохо. В тач-смартфонах при клике на поле открывается виртуальная клавиатура со строкой ввода.
Скрытие пароля - это уже почти стандарт. С этим смирился весь мир, кроме Якоба Нильсена.
Естественно, такие штуки для доступа к банковским аккам лучше не делать, но у меня есть довольно много знакомых, которые на «вы» с клавиатурой и именно из-за того, что им не видны символы пароля они используют либо один и тот же простой пароль для всего, либо юзают лежащий прямо на рабочем столе (редкий случай — google notebook) файлик, откуда всё копипастят —> снижение защищённости.
С мобилами тоже согласен на все сто. Показ только последнего набранного символа, который к тому же на многих мобилках слишком быстро заменяется звездой, проблемы не решает. Да и шанс подглядеть чужой пароль на телефоне в разы ниже, чем за обычным монитором. Потому именно в мобилках я бы показывал пароль при вводе.
Ну, и естественно, оставил бы за юзером право выбора, должен отображаться пароль или нет. Так что идея с дефолтной галочкой мне тоже нравится.
парочка клёвых штучек для юзабилити ввода пассвордов: http://css-tricks.com/better-password-inputs-iphone-style/
Они у вас "123" что ли?
По теме топика.
Может и не стоит показывать всегда пароль в открытом виде, но чекбокс "показать пароль" рядом с полем ввода не помешает. Кому надо — тот щёлкнет.
И где-то такое я даже видел, сейчас, к сожалению, не вспомню.
Для себя проблему решил greasemonkey скриптом Password Viewer. По наведению мыши на поле ввода пароля меняет его тип на 'text'.
Тогда при вводе пользователь все будет видеть, а когда пароль будет введет и пользователь пойдет дальше, уже не так важно, кружочки там будут или буквы. Если он захочет еще раз посмотреть на пароль — кликнет в поле, оно поменяется опять на type=text, он увидит буквы.
http://www.zarifman.ru
Стаф работает при регистрации. Кнопка "показать пароль" появляется ПОСЛЕ начала печати пароля.
Правда там нужно еще доработать автоматическую смену на type=password, если перед отправкой формы стоит выбран type=text
- иначе браузер не запоминает.
А пароли, все же, лучше скрывать, имхо. Ситуации всякие бывают. К тому все привыкли видеть эти черные кружочки ;)
По мне так намного удобней.
Че забред?
Если юзер не может ввести пароль не видя букв, то юзер ДЕБИЛ. И таких пускать на сайт СТРОГО запрещено! Если совсем туго, пиши в блокноте, копируй, вставляй в поле для пароля.
ппц! Ну ошибся при вводе пароля - перенабери. Открывать пароли полный бред. Давайте еще не будем шифровать пароли и записывать в БД, а в текстовый файл, чтобы нуб-юзер мог легко сменить забытый пароль от своего сайта :)
Да будет вам известно, по умолчанию все введённые данные в поля, отличные от type=password, сохраняются в бравзере. Следует так же учесть, что в большинстве случаев на любое поле пароля ставится вполне ожидаемое name=password.
Очень забавно наблюдать, как при двойном нажатии на такое "открытое" поле выкатываются все когда-либо введённые в такие же поля пароли.
Простой пример, сейчас очень распространены стримы, вот один "стример" перепутал окно ввода логина и пороля в Диабло 3. Ввел в "очень юзабильное и удобное" поле логина свой пороль и все, через 5 минут на персонаже не осталось ни одной шмотки. Так что теперь придется не только клавиатуру прикрывать от "соседа" но и рукой монитор зарывать =)) как варинат добавить возле поля пороля переключатель, который могбы переключать вид "***" на "123" мне кажется это оптимальный вариант
-----хотят предложить свои услуги
-------на восстановление пароля от забытых страниц,почт
---------на взлом партнера по бизнесу
-----------на взлом второй половинки
-------------или для иных условий
---------------на следующие вид услуг :
Вконтакте
Mamba
Одноклассники
Facebook
love
яндекс
Маил
Рамблер
gmail
Yahoo
Hotmail
ukr . net
----------На счет остального в личке
связь с нами через почту vzlomshick.mihail@yandex.ru
=
=
=
=
=
---Совместное участие нескольких специалистов
-----хотят предложить свои услуги
-------на восстановление пароля от забытых страниц,почт
---------на взлом партнера по бизнесу
-----------на взлом второй половинки
-------------или для иных условий
---------------на следующие вид услуг :
Вконтакте
Mamba
Одноклассники
Facebook
love
яндекс
Маил
Рамблер
gmail
Yahoo
Hotmail
ukr . net
----------На счет остального в личке
связь с нами через почту vzlomshick.mihail@yandex.ru
=
=
=
=
=
---Совместное участие нескольких специалистов
-----хотят предложить свои услуги
-------на восстановление пароля от забытых страниц,почт
---------на взлом партнера по бизнесу
-----------на взлом второй половинки
-------------или для иных условий
---------------на следующие вид услуг :
Вконтакте
Mamba
Одноклассники
Facebook
love
яндекс
Маил
Рамблер
gmail
Yahoo
Hotmail
ukr . net
----------На счет остального в личке