Лучшие практики для страниц входа?
Я работаю над одной регистрационной страницей входа в систему, используя Shibboleth, который будет использоваться для различных веб-приложений. Очевидно, мы хотели бы сделать эту страницу максимально безопасной и полезной, ограничивая при этом последствия фишинговых атак.
Какие рекомендации следует учитывать при разработке страницы входа в систему?
Некоторые вопросы, которые возникли по этой проблеме:
- Важно ли, чтобы страница входа всегда выглядела одинаково на каждом дисплее?
- И наоборот, было бы полезно, чтобы страница входа в систему имела случайный дизайн?
- Лучше ли для страницы входа выглядеть так же, как и на всех ваших других страницах, или если у нее есть свой собственный уникальный дизайн?
- Если страница входа имеет свой собственный уникальный дизайн, должна ли она включать другие постоянные элементы в ваш дизайн сайта (например, глобальная навигация)?
- Является ли страница входа подходящим местом для предоставления пользователю дополнительного контента (например, последние новости)?
- Существуют ли какие-либо дополнительные функции безопасности, которые должны быть включены, чтобы помочь людям оставаться в безопасности?
Ответы
Ответ 1
Примечания к юзабилити:
Лично я ненавижу, когда сайты помещают "забытый пароль" или "забывают имя пользователя" или "помогать" между полями пароля и кнопкой "Вход". Как пользователь клавиатуры, я не должен был бы TAB над ними, чтобы добраться до кнопки отправки.
Еще лучше, также возьмите Enter Enter в поле пароля, чтобы я мог автоматически отправить с помощью клавиши Enter.
Ответ 2
Сохранение того же дизайна на странице входа в систему позволит узнать ваших пользователей, что они пытаются войти на вашу страницу, если изменение дизайна случайно может показаться, что сайт был перемещен или они становятся жертвами рассылки. поэтому я бы рекомендовал придерживаться тех же рекомендаций, что и ваши страницы контента
Ответ 3
Независимо от того, что вы разрабатываете, Phisher сможет имитировать его. Предотвращение фишинга - это сложная проблема. Вы, по сути, должны иметь некоторые способы идентификации своих пользователей, прежде чем они войдут в систему. Некоторые банки делают это сейчас. Вы вводите свое имя, а затем показываете свое изображение, которое вы сами выбрали, а затем, когда вы уверены, что это то же изображение, вы вводите свой пароль. Это может быть более высокий уровень сложности, чем требуется вашему сайту.
С технической стороны Bank Of America выполняет это, используя Flash Local Shared Object под названием PassMark. Ваш браузер молча отправляет эти данные, идентифицируя себя в Банке. Если вы удалите LSO, вам не будет показан ваш образ, потому что BofA не сможет идентифицировать вас. Даже это все еще уязвимо для нападений "человек-в-середине".
Ответ 4
Еще одна вещь "нет духа", которую я все еще вижу во многих приложениях, к которым я обращаюсь, если указанные учетные данные недействительны, не указывайте, какой из них недопустим. Просто скажите что-то вроде "недействительной комбинации пользователей и паролей" вместо "недопустимый пароль", который запретит этим людям из социальной инженерии знать пользовательскую базу, обращающуюся к вашему сайту.
Ответ 5
Smashing Magazine имеет довольно полный обзор форм входа в систему.
Шаблоны проектирования веб-форм: формы регистрации
Ответ 6
включить защиту уровня приложения
Будьте неспецифичны с ошибками входа. Генерированный "Login failed" вместо "Неизвестное имя пользователя".
Используйте пробную или пробную проверку.
Ответ 7
Похоже, что это не проблема, но используйте HTTPS, если это требует приложение. Heck, даже если это не оправдывает этого, потому что люди склонны повторно использовать одни и те же пароли. В наши дни вы можете получить сертификат SSL. Если они снимут пароль с вашего сайта, они могут попробовать его в другом месте. Даже у многих банков нет страницы входа в безопасную линию. Он отправляется на страницу HTTPS, но до сих пор нет защиты человека от атаки среднего типа.
Я согласен с Omniwombat. Фишинг - это трудная проблема, чтобы решить проблему и, казалось бы, ее невозможно полностью решить.
Ответ 8
Подумайте, как пользователь, а также охранник: если вы заставляете их делать переписку каждый раз, когда вы входите в систему, они будут очень усталыми от этого.
Если вы пытаетесь предотвратить отказ в обслуживании, возможно, сделать капчу, только после того, как в течение определенного периода времени будет достаточно попыток входа в систему (неудачно?).
Рассмотрите возможность использования NTLM, OpenID или Shibboleth, чтобы сделать логин максимально автоматическим для большинства пользователей.
Не заставляйте людей переходить на отдельную страницу для регистрации. Предположительно, у вас будут поля имени пользователя и пароля, а также кнопка входа/отправки. Просто добавьте кнопку "зарегистрироваться как новый пользователь", чтобы новые пользователи могли использовать существующие поля имени пользователя и пароля. Если вам нужно собрать дополнительные сведения для новых пользователей, всплывающую форму (используя DHTML, а не всплывающее окно), чтобы собрать их.
Ответ 9
Полезный совет для возникновения обстоятельств:
Вы можете отключить сохранение пароля на стороне клиента, добавив autocomplete = "off" в поле пароля.
Это не работает во всех браузерах (если я помню, IE 6+ и Firefox 3 +)
Ответ 10
Лучшее, что я видел до сих пор в попытке остановить фишинг, - это интерфейс входа в банк. Вход в систему выполняется в 3 частях, сначала пользователь вводит номер своей учетной записи (номер дебетовой карты, номер кредитной карты...), второй шаг будет случайным образом отображать 1 из 3 вопросов, заданных пользователем (например: какая средняя школа посещала для класса 10), последняя часть, если первые две успешны, отображает изображение и некоторый текст, указанный пользователем при регистрации, с полем пароля ниже.
Ответ 11
Поймите, что ваш пользователь будет тратить все 10 секунд на этой странице в целом, это действительно не имеет значения, на что это похоже, пока очевидно, где разместить свой идентификатор пользователя и пароль. Помимо этого просто не один из тех сайтов, которые предлагают отправить мне мой пароль, если я его забуду. По крайней мере, позвольте мне поверить, что он скрыт в хорошем соленым хешем где-то, где вы не можете его восстановить.
Ответ 12
@Joe Lencioni, и все, кого интересует Shibboleth
Страницы вашего сайта должны иметь одинаковый внешний вид на каждой странице.
Относительно Shibboleth и SSO. Важно отметить, с какой ролью связана ваша организация. Вы поставщик удостоверений - IdP (аутентификация пользователя, а затем отправка ответа на SP), или вы являетесь поставщиком услуг - SP (который предоставит аутентификацию на основе ответа и атрибутов, отправленных IdP.
Если вы SP, у вас есть какая бы гибкость, вы хотите связать своих пользователей с IdP для входа в систему. Многие SP создают свою собственную страницу WAYF (Where Are You From), которая перенаправляет пользователя на страницу входа в систему IdP.
Если вы являетесь IdP, у вас должна быть страница входа в систему, которая выглядит знакомой пользователю, поэтому они могут войти в систему и затем перенаправляться в SP с атрибутами, которые необходимы для предоставления SP надлежащего доступа.
Что касается фишинг-мошенничества, важно сохранить текущие метаданные Shibboleth. Я считаю, что многие федерации рекомендуют скачивать метаданные каждый (1) час.
На многие вопросы Shibboleth можно ответить здесь: https://spaces.internet2.edu/display/SHIB2/Home
Надеюсь, это поможет вам.