Текст книги "Шаблоны проектирования веб-приложений"
Автор книги: Паван Вора
Жанр: Зарубежная компьютерная литература, Зарубежная литература
сообщить о неприемлемом содержимом
Текущая страница: 5 (всего у книги 33 страниц) [доступный отрывок для чтения: 11 страниц]
Глава 3
Аутентификация пользователя
Введение
Когда веб-приложение предполагает взаимно однозначное взаимодействие с пользователем и сохранение персональных данных о пользователе, возникает необходимость, чтобы пользователи создавали учетную запись (REGISTRATION) и выбирали уникальные учетные данные для доступа к веб-приложению. При регистрации пользователи в некоторых случаях должны ввести набор буквенно-цифровых символов с искаженного изображения, чтобы предотвратить рассылку спама, а также подтвердить, что они являются людьми, а не компьютерными программами (CAPTCHA, Completely Automated Public Turing test to tell Computers and Humans Apart, – Полностью автоматизированный публичный тест Тьюринга для различения компьютеров и людей).
Когда созданы уникальные учетные данные, пользователи могут идентифицироваться (LOG IN) и получить доступ к своей личной информации. После входа в систему и выполнения необходимых заданий пользователям во многих случаях необходимо выйти из приложения таким образом, чтобы неавторизованные пользователи не могли получить доступ и изменить информацию из их учетной записи (LOG OUT). Во многих приложениях предусмотрен автоматический выход из системы, если пользователь какое-то время неактивен (AUTOMATIC LOGOUT).
Поскольку часто приложением пользуются лишь время от времени, пользователи забывают свои учетные данные, и им необходим способ их восстановить. В зависимости от того, какой уровень безопасности предусматривается приложением, пользователям может понадобиться предоставить какую-либо личную информацию. Например, указать адрес электронной почты, на который зарегистрирована эта учетная запись, или ответить на один или несколько контрольных вопросов, составленных во время регистрации (FORGOT USERNAME/PASSWORD).
REGISTRATION (РЕГИСТРАЦИЯ)
Проблема
В веб-приложениях часто необходимо, чтобы идентификационные данные пользователя были уникальны. Это необходимо для того, чтобы предотвратить возможность несанкционированного доступа к личной и конфиденциальной информации (например, к медицинским или финансовым данным), сделать пользование приложением еще удобнее (например, сохраняя информацию об адресе доставки и адресе выставления счета) и предоставить возможность делиться информацией (например, фотографиями). Однако несмотря на все эти преимущества, пользователи часто сомневаются, стоит ли предоставлять личную информацию, и нередко избегают приложений, в которых необходимо создавать учетную запись.
Решение
Отложите регистрацию на самый последний момент и позвольте пользователям изучить приложение, чтобы они в полной мере оценили все преимущества создания учетной записи. Кроме того, если пользователи готовы отказаться от ряда удобств, дайте им возможность совершить операцию, не регистрируясь. На сайте Topix.net значительно увеличилось количество и качество сообщений, когда для того, чтобы оставить сообщение в форуме, сайт перестал требовать от пользователей зарегистрироваться (Blake, 2006). Когда регистрация неизбежна, четко обозначьте преимущества регистрации и узнавайте у пользователей только ту информацию, которая необходима для создания учетной записи (рис. 3.1).
Рис. 3.1. У сервиса Crazy Egg одна из самых простых и коротких регистрационных форм. Для регистрации пользователь должен просто указать свой электронный адрес и пароль, и согласиться с условиями использования и политикой конфиденциальности
Зачем
В большинстве случаев создание учетной записи в приложении не входит в задачи пользователей. Обычно в их задачу входит покупка товара, выкладывание информации, оплата счетов и т. д. Предложение создать учетную запись или зарегистрироваться обычно отвлекает пользователей от их основной задачи и прерывает их взаимодействие с системой. По этой причине регистрацию нужно откладывать на самый последний момент. Этот подход часто практикуется в приложениях для электронной коммерции (например, Amazon, Buy.com), информационных порталах (например, Yahoo! MSN, Morningstar) и приложениях для информационного обмена (например, Flickr, YouTube, SlideShare), где пользователь может изучить контент, не создавая учетную запись. Только когда пользователи хотят совершить покупку, добавить контент, оставить комментарий или изменить внешний вид приложения, эти приложения требуют, чтобы пользователи зарегистрировались. По этой причине поздняя регистрация позволяет пользователям оценить все преимущества приложения и лучше осознать необходимость и достоинства создания учетной записи.
Как
Первое и основное: формы регистрации должны быть настолько короткими, насколько это возможно, и должны запрашивать только необходимую информацию (рис. 3.2). В большинстве случаев к такой информации относится уникальное имя пользователя (или ID пользователя, или электронный адрес) и пароль.
Рис. 3.2. В приложении Wufoo, разработанном для создания различных онлайновых форм, применяется простая форма регистрации, в которой нужно указать только самую необходимую информацию
Поскольку пользователи не видят введенный пароль, попросите их подтвердить пароль путем повторного его введения. Кроме того, если это необходимо с юридической точки зрения, попросите пользователей подтвердить свое согласие с условиями использования.
Когда пользователи должны создать свою учетную запись, важно, чтобы формы были как можно короче, и в них выяснялась только самая необходимая информация, так чтобы пользователи отвлеклись от выполнения своих задач лишь на очень короткий промежуток времени. Узнавая у них информацию, которая не является необходимой, вы увеличиваете время, которое уходит на регистрацию, и вероятность ошибки пользователя. Это может привести к отказу от регистрации или к получению неверных или излишних данных.
Когда вам нужно узнать личную информацию, такую как дата рождения, пол, раса и т. д., четко объясняйте, для чего эта информация необходима, и как она будет использоваться (рис. 3.3).
Рис. 3.3. На сайте Papa John в регистрационной форме объясняется, почему пользователи должны указать свой возраст: потому что им должно быть больше 13 лет для того, чтобы они могли сделать заказ
Попробуйте использовать электронный адрес в качестве имени пользователя
Во время регистрации пользователям часто приходится придумывать уникальный идентификатор для своей учетной записи, такой как имя пользователя или электронный адрес. Электронные адреса часто оказываются более удачным вариантом, поскольку они всегда уникальны, и их легче запомнить, даже если у пользователей несколько электронных адресов. Кроме того, когда пользователю нужно напомнить его регистрационные данные, проще отправить напоминание на его зарегистрированный электронный адрес (см. шаблон FORGOT USERNAME/ PASSWORD далее в этой главе).
Применяйте полностью автоматизированный публичный тест (CAPTCHA), чтобы зарегистрироваться мог только человек
В Интернете настолько много программ-пауков, что уже сложно отличить их от пользователей-людей. Включите автоматизированный тест в форму регистрации и сократите количество регистраций, произведенных подобными программами (рис. 3.4).
Рис. 3.4. Для регистрации на сервисе Nabble пользователи должны пройти автоматизированный CAPTCHA-тест
Автоматизированный тест CAPTCHA требует от пользователей, чтобы они ввели в специально отведенное поле символы с искаженного изображения, которое содержит буквы и/или числа. Способность верно определить символы искаженного изображения выступает в качестве доказательства того, что форму заполняет человек, а не программа (см. далее шаблон CAPTCHA).
Хотя тест CAPTCHA применяется все чаще, пользователям приходится прикладывать дополнительные усилия на то, чтобы ввести эту информацию. Калбуччи (Calbucci, 2008) обнаружил, что когда на сайте Sampa (www.sampa.com) убрали тест CAPTCHA при регистрации, количество зарегистрировавшихся увеличилось на 9,2 %.
Попробуйте применить «ленивую» регистрацию
Как уже отмечалось, регистрация часто отвлекает пользователя от выполнения основной задачи. По этой причине старайтесь откладывать регистрацию на самый последний момент, чтобы пользователи могли изучить приложение, прежде чем им предложат зарегистрироваться. Например, на сайте Morningstar пользователям предлагается зарегистрироваться или войти в свою учетную запись только тогда, когда они доходят до страницы, на которой им необходимо указать личную информацию (например, при создании инвестиционного портфеля).
Чтобы процесс регистрации был максимально эффективным, даже когда он отложен на потом, можно воспользоваться подходом «ленивой» регистрации, т. е. собирать информацию о пользователе из файлов cookie его браузера во время работы с приложением. Как утверждает Махемофф (Mahemoff, 2006):
«Когда пользователь взаимодействует с приложением, в его учетной записи сохраняется определенная информация. Некоторые данные вносит сам пользователь, рекомендуется указывать подобную информацию так, чтобы пользователь мог ее внести самостоятельно. Таким образом, исходный профиль можно рассматривать как структуру с множеством дыр. Некоторые из этих дыр постепенно восполняются автоматически, а другие восполняет сам пользователь».
Благодаря такому способу сбора информации, к тому моменту, как пользователь должен будет заполнить регистрационную форму, некоторые ее поля могут быть заранее заполнены за него, и пользователю нужно будет только подтвердить эти данные, а не вводить их. Например, если пользователь собирается подписаться на новостную рассылку, у приложения уже будет адрес его электронной почты, и эту информацию пользователю не придется вносить заново.
Попробуйте обойтись без регистрации
Предоставьте пользователям возможность пользоваться приложением без регистрации в тех случаях, когда просто хотят быстро выполнить ту или иную операцию. Такой подход часто встречается в приложениях для электронной коммерции, особенно в тех случаях, когда пользователи просто покупают подарок кому-либо и больше приложением не пользуются (рис. 3.5). Пользователям можно предложить зарегистрироваться на финальных этапах транзакции (или при оформлении покупки и оплате заказа), перечислив все преимущества регистрации (например, возможность отслеживать выполнение заказа).
Рис. 3.5. На сайте Office Depot пользователи могут совершить покупку без регистрации. Также пользователям сообщается, что они смогут создать учетную запись во время оплаты
Четко обозначьте преимущества регистрации
Если невозможно отложить регистрацию в приложении, четко обозначьте все преимущества регистрации (рис. 3.6).
Рис. 3.6. На сайте сервиса Netflix не просто перечислены преимущества регистрации, но также на этой же самой странице объяснено, как сервис функционирует. Пользователи могут пройти по специальной ссылке и подробнее ознакомиться с тем, как выбирать фильмы, или с предложением воспользоваться бесплатным тестовым периодом; более того, на сайте Netflix указан номер телефона, по которому можно позвонить, если возникли вопросы
Во многих приложениях недостаточно просто перечислить преимущества, особенно если регистрация платная. В подобных случаях предложите пользователям демонстрационный тур, в котором будут объясняться все достоинства приложения, и/или позвольте им создать бесплатную пробную учетную запись на ограниченный период времени или с ограниченным функционалом (рис. 3.7).
Рис. 3.7. Сервис Basecamp (от 37Signals) предлагает пользователям тур по приложению, чтобы они смогли оценить его функционал и преимущества. Пользователи могут создать бесплатную пробную учетную запись, чтобы получить возможность самостоятельно изучить приложение. Хотя при бесплатной регистрации пользователь лишен ряда возможностей, ему проще увидеть все преимущества регистрации
Попробуйте предоставить пользователям возможность воспользоваться системами «унифицированной идентификации»
Пользователю может быть сложно запомнить регистрационную информацию для одного или более приложений, что может привести к проблемам с безопасностью (например, хранение информации в письменном виде или использование очень простых паролей). Даже когда безопасность не так важна, забытые регистрационные данные могут привести к ненужным задержкам в выполнении заданий. По этой причине, по возможности, предоставляйте пользователям возможность регистрироваться с помощью сервисов «унифицированной идентификации», например OpenID или Windows CardSpace.
OpenID – это открытый стандарт, который позволяет пользователям создавать и применять пару имя пользователя и пароль для входа в любое веб-приложение, поддерживающее OpenID; для получения более подробной информации зайдите на сайт www.openid.net. Таким образом, разрешив поддержку OpenID, вы либо устраните необходимость регистрации либо по крайней мере сократите количество данных, которые должен предоставить пользователь для создания учетной записи (рис. 3.8). Поскольку не все пользователи зарегистрированы в OpenID, обеспечивать нормальный процесс регистрации все равно необходимо.
Рис. 3.8. На сайте Ma.gnolia пользователи могут пройти стандартную регистрацию и выбрать себе имя пользователя и пароль, а также воспользоваться системой OpenID
Подтверждайте регистрацию
При необходимости требуйте от пользователей подтверждения регистрации, чтобы препятствовать мошенничеству. Обычно для этого на указанный во время регистрации электронный адрес отправляется письмо, содержащее ссылку для подтверждения. Только после того как пользователи проходят по этой ссылке (или вставляют регистрационный URL-адрес в адресную строку браузера), их регистрация считается завершенной. Чтобы письмо случайно не потерялось, предлагайте пользователям проверить папку со спамом (рис. 3.9).
Рис. 3.9. На сайте YouTube пользователи для подтверждения регистрации должны пройти по ссылке из присланного им электронного письма. На сайте указывается, что если в течение нескольких минут после регистрации пользователь не получил электронное письмо, то необходимо проверить папку для спама
Развейте сомнения пользователей по поводу конфиденциальности
Пользователи могут сомневаться, стоит ли им регистрироваться, потому что им неизвестно, как будет использована их личная информация. Чтобы развеять подобные сомнения, напишите несколько слов по поводу конфиденциальности (например, «Ваша информация не будет продана или разглашена») и сразу за этим разместите ссылку на подробную политику конфиденциальности (рис. 3.10).
Рис. 3.10. В регистрационной форме сайта Prosper кратко описана политика конфиденциальности, а также указана ссылка на более подробную информацию о политике конфиденциальности
Для сохранения персональных данных устанавливайте контрольные вопросы
В веб-приложениях с повышенным уровнем безопасности (например, в приложениях, связанных с финансами) используйте контрольные вопросы (рис. 3.11). Впоследствии с помощью контрольных вопросов можно идентифицировать пользователей, забывших свою регистрационную информацию (см. далее в этой главе шаблон FORGOT USERNAME/PASSWORD).
Рис. 3.11. При создании учетной записи на сайте CapitalOne пользователь должен указать контрольный вопрос
Согласие
Убедите пользователей согласиться получать рассылку от компании, которой принадлежит данное приложение (рис. 3.12).
Рис. 3.12. На сайте Evite пользователям четко предлагается получать рассылку с информацией о вечеринках и идеях для отдыха
Это первый шаг на пути к тому, чтобы отправленное пользователю электронное сообщение отвечало требованиям закона CAN-SPAM[5]5
CAN-SPAM – часто используемое сокращение для Controlling the Assault of NonSolicited Pornography and Marketing Act of 2003 – Акт о контроле над распространением непрошеных сообщений порнографического характера и рекламы, 2003 год. В январе 2004 он стал законом и имеет отношение к тем компаниям в США, которые рассылают коммерческие электронные сообщения. Согласно этому закону у получателей рассылки есть право отказаться от рассылки.
[Закрыть]. Лучший способ это сделать – дважды разместить предложение, и если пользователь соглашается, ему приходит письмо, содержащее ссылку для подтверждения, по которой он должен пройти, чтобы подтвердить свое согласие.
Кроме того, пользователи должны быть осведомлены о том, насколько часто они будут получать рассылку и какие сообщения будут им приходить.
Существует вероятность, что подобные письма будут приходить в папку для спама, поэтому попросите пользователей соответствующим образом настроить фильтр спама или добавить адрес, с которого приходит рассылка, в свой список контактов.
Возвращайте пользователей обратно к тому шагу, на котором их прервали
По завершении регистрации возвращайте пользователей на ту страницу, на которой они находились, когда решили зарегистрироваться, или на ту, где запрашивается регистрация. Например, в приложениях для электронной коммерции, если пользователям предлагается зарегистрироваться во время процесса оформления заказа, верните их на страницу, на которой они смогут увидеть, зарегистрировались они или нет: например, на страницу с информацией о доставке.
Связанные шаблоны проектирования
Во многих веб-приложениях регистрация – это первая форма, с которой сталкиваются пользователи. Чтобы взаимодействие пользователя с приложением было успешным, важно придерживаться шаблонов, описанных в главе 2 – CLEAR BENEFITS, SHORT FORMS, REQUIRED FIELD INDICATORS и ERROR MESSAGES. Когда пользователи видят регистрационную форму, важно, чтобы у них была возможность войти в систему (LOG IN), поскольку они могли зарегистрироваться ранее. Кроме того, поскольку процесс регистрации нередко сопровождается тестом CAPTCHA, придерживайтесь рекомендаций из следующего шаблона.
CAPTCHA (ПОЛНОСТЬЮ АВТОМАТИЗИРОВАННЫЙ ПУБЛИЧНЫЙ ТЕСТ)
Проблема
Приложение должно удостовериться, что действие (например, регистрация, отзыв, комментарий и т. д.) совершено человеком, а не программой, чтобы предотвратить создание ложных учетных записей и поддельных откликов.
Решение
Попросите пользователя напечатать символы с искаженного изображения, содержащего буквы и/или цифры, прежде чем он зарегистрируется или оставит комментарий или отзыв (рис. 3.13).
Рис. 3.13. Тест CAPTCHA на странице регистрации Yahoo!
Распознавание искаженного изображения выступает в качестве подтверждения того, что пользователь – это человек, а не машина, поскольку автоматически распознать искаженное изображение компьютерной программе довольно сложно. Этот метод называется тест CAPTCHA (от англ. Completely Automated Public Turing test to tell Computers and Humans Apart – Полностью автоматизированный публичный тест Тьюринга для различения компьютеров и людей (von Ahn, Blum, and Langford, 2004)[6]6
Многие изображения CAPTCHA в Интернете используют сервис CAPTCHA, предоставляемый американским Университетом Карнеги-Меллон в рамках проекта reCAPTCHA, задачей которого является оцифровка книг путем отправки пользователям в качестве теста CAPTCHA оцифрованных слов, с распознаванием которых не справились системы оптического распознавания текста. Чтобы узнать о проекте подробнее, зайдите на страницу www.recaptcha.net.
[Закрыть].
Зачем
В Интернете настолько много программ-пауков, что уже сложно отличить их от пользователей-людей. С тестом CAPTCHA люди справляются относительно легко, а программе-пауку пройти этот тест довольно сложно, благодаря этому ботам и паукам трудно, если вообще возможно, осуществлять взаимодействие с приложением и отправлять формы.
Как
Изображения CAPTCHA обычно состоят из четырех-пяти искаженных буквенно-цифровых символов; буквы на изображении могут быть как заглавными, так и строчными. Кроме того, на изображении могут присутствовать линии, несколько искаженных слов, отвлекающий фон и т. д. (рис. 3.14). Пользователей перед отправкой формы просят распознать изображение и ввести символы в правильном порядке (регистр может учитываться, а может и не учитываться). При отправке формы ответ проверяется, и пользователи либо переходят к следующему этапу, либо получают сообщение об ошибке.
Рис. 3.14. Примеры изображений CAPTCHA
Относительно недавно некоторые сайты стали использовать в тесте CAPTCHA простые математические задачи, такие как 2+4 или 4x2, которые пользователи должны решить (рис. 3.15).
Рис. 3.15. Два примера использования математических задач в качестве теста CAPTCHA
Позволяйте пользователям менять изображение CAPTCHA
Некоторые изображения CAPTCHA могут показаться пользователям слишком искаженными, чтобы можно было распознать определенные символы (например, цифру 1 можно перепутать со строчной буквой l, а цифру 9 – со строчной g). По этой причине у пользователей должна быть возможность изменить изображение CAPTCHA, щелкнув мышью по ссылке «обновить» или «изменить» (рис. 3.16).
Рис. 3.16. Сервис Nabble предоставляет пользователям возможность изменить изображение CAPTCHA
Предлагайте возможность пройти звуковой тест CAPTCHA
Поскольку тест CAPTCHA основывается на расшифровке изображения, он предоставляет очевидную сложность для слепых пользователей и для пользователей с нарушенным зрением. У них должна быть возможность пройти звуковой тест CAPTCHA – аудиоверсию стандартного теста CAPTCHA, которая позволит им осуществлять взаимодействие с приложением (рис. 3.17).
Рис. 3.17. На сервисе Gmail пользователям предлагается и визуальный, и звуковой тест CAPTCHA
Связанные шаблоны проектирования
Тесты CAPTCHA часто применяются во время регистрации, поскольку большинство приложений пытаются избежать регистрации, произведенной программами-пауками (REGISTRATION). Также этот тест часто применяется в форумах и блогах, где пользователи могут оставлять комментарии или участвовать в жизни сообщества (см шаблон GROUPS/SPECIAL INTEREST COMMUNITY в главе 9).
Правообладателям!
Данное произведение размещено по согласованию с ООО "ЛитРес" (20% исходного текста). Если размещение книги нарушает чьи-либо права, то сообщите об этом.Читателям!
Оплатили, но не знаете что делать дальше?