Лучшие практики для страниц входа? - PullRequest
19 голосов
/ 28 октября 2008

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

Какую наилучшую практику следует учитывать при разработке страницы входа?

Некоторые вопросы, которые возникли вокруг этой проблемы:

  • Важно ли, чтобы страница входа в систему всегда выглядела одинаково на каждом дисплее?
  • И наоборот, было бы полезно, чтобы страница входа в систему имела случайный дизайн?
  • Лучше ли, чтобы страница входа в систему выглядела так же, как и все остальные ваши страницы, или она должна иметь свой собственный уникальный дизайн?
  • Если страница входа имеет собственный уникальный дизайн, должны ли она включать в себя другие постоянные элементы дизайна вашего сайта (например, глобальную навигацию)?
  • Является ли страница входа подходящим местом для предоставления пользователю дополнительного контента (например, последних новостей)?
  • Существуют ли какие-либо дополнительные функции безопасности, которые должны быть включены для обеспечения безопасности людей?

Ответы [ 12 ]

21 голосов
/ 28 октября 2008

Замечания по юзабилити:

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

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

7 голосов
/ 28 октября 2008

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

6 голосов
/ 28 октября 2008

Независимо от того, что вы разрабатываете, Фишер сможет имитировать это. Предотвращение фишинга - сложная проблема. По сути, вам нужно будет иметь некоторые средства идентификации ваших пользователей , прежде чем они войдут в систему. Некоторые банки делают это сейчас. Вы вводите свое имя, а затем они показывают вам изображение, которое вы сами выбрали, а затем, как только вы уверены, что это то же изображение, вы вводите свой пароль. Это может быть сложнее, чем требует ваш сайт.

С технической стороны Bank Of America выполняет это, используя Flash Local Shared Object с именем PassMark. Ваш браузер автоматически отправляет эти данные, идентифицируя себя в Банк. Если вы удалите LSO, вам не будет показано ваше изображение, потому что BofA не может идентифицировать вас. Даже это все еще уязвимо для атак «человек посередине».

5 голосов
/ 28 октября 2008

Еще одна вещь "нет", которую я все еще вижу во многих приложениях, к которым я обращаюсь, если указанные учетные данные недействительны, не указывают, какое из них недействительно. Просто скажите что-то вроде «недопустимая комбинация пользователя и пароля» вместо «недопустимого пароля», что помешает этим людям из социальной инженерии узнать пользовательскую базу, получающую доступ к вашему сайту.

4 голосов
/ 16 апреля 2009

Smashing Magazine имеет довольно полный обзор форм входа в систему. Шаблоны проектирования веб-форм: формы регистрации

3 голосов
/ 28 октября 2008

Похоже на простую задачу, но используйте HTTPS, если приложение требует этого. Черт возьми, даже если это не оправдывает, потому что люди, как правило, используют одни и те же пароли. Вы можете получить сертификат SSL дешево в эти дни. Если они снимают пароль с вашего сайта, они могут попробовать его в другом месте. Даже во многих банках нет страницы входа на защищенной линии. Он отправляет сообщения на страницу HTTPS, но по-прежнему нет защиты человека, атакующего среднего типа.

Я согласен с Омнивомбатом. Фишинг - это сложная проблема, которую трудно решить, и, по-видимому, невозможно полностью ее решить.

3 голосов
/ 28 октября 2008

включает профилактику доз на уровне применения

Не указывайте ошибки при входе в систему. Общее «Ошибка входа в систему» ​​вместо «Неизвестное имя пользователя».

Используйте капчу или другой тест Тьюринга.

2 голосов
/ 12 января 2010

Думайте как пользователь, а также как охранник: если вы заставляете их делать капчу каждый раз при входе в систему, им это надоест.

Если вы пытаетесь предотвратить отказ в обслуживании, возможно, заставите капчу появиться только после того, как в определенный период времени будет достаточно (неудачных?) Попыток входа.

Рассмотрите возможность использования NTLM, OpenID или Shibboleth, чтобы сделать вход в систему как можно более автоматическим для большинства пользователей.

Не заставляйте людей заходить на отдельную страницу, чтобы зарегистрироваться. Предположительно у вас будут поля с именем пользователя и паролем, а также кнопка входа в систему / отправки. Просто добавьте кнопку «зарегистрироваться как новый пользователь», чтобы новые пользователи могли использовать существующие поля имени пользователя / пароля. Если вам нужно собрать дополнительную информацию для новых пользователей, откройте форму (используя DHTML, а не всплывающее окно), чтобы собрать их.

1 голос
/ 28 октября 2008

Лучшее, что я когда-либо видел в попытке остановить фишинг, - это интерфейс входа банка. Вход в систему состоит из 3 частей: сначала пользователь вводит номер своей учетной записи (номер дебетовой карты, номер кредитной карты ...), на втором шаге случайным образом перечисляется 1 из 3 вопросов, указанных пользователем (например: какую школу вы посещали для 10 класса) последняя часть, если первые два пройдены успешно, - это отображение изображения и некоторого текста, указанного пользователем при регистрации, с полем пароля ниже.

1 голос
/ 28 октября 2008

Полезный совет для непредвиденных обстоятельств: Вы можете отключить сохранение пароля на стороне клиента, добавив autocomplete = "off" в поле пароля.

Это работает не во всех браузерах (если я помню, IE 6+ и Firefox 3+)

...