Надпись: «Неправильное имя пользователя или пароль» - это полная хрень

Существует лучшая практика безопасности, когда формы ввода вместо надписи «неверный пароль» должны показать надпись «неправильное имя пользователя или пароль». Эта, так называемая, «лучшая практика» – отстой.

Например, Stripe и GitHub’s придерживаются этой практики.

Stripe платежкаGitHub’s платежка

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

Но вот, в чем проблема.

Stripe ошибка

GitHub’s теперь вы знаете мое имя пользователя
Блин, теперь вы знаете мое имя пользователя… Думаю, я облажался. Не говоря уже о том, что вы могли просто зайти сюда https://github.com/travisjeffery.

Все, что нужно сделать хакеру, это зарегистрироваться, чтобы узнать, действительно ли имя пользователя или нет. Зачем тогда беспокоиться с запутыванием формы входа? Только самого тупого, ленивого хакера остановит надпись «имя пользователя или пароль неверны». Вы не получаете никакой безопасности, но ваши пользователи теряют ясность.

Stripe имеет поле reCAPTCHA, чтобы предотвратить примитивные скрипты, атакующие их форму входа. Однако, ее взламывали несколько раз (12) и, вероятно, она никогда не будет идеальна. Даже если бы reCAPTCHA была совершенна, хакер мог вручную проверить имена пользователей, пытаясь зарегистрироваться, а затем автоматизировать атаку на страницу входа.

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

Сообщение «неправильное имя пользователя или пароль» – полная фигня.

Если есть вопросы пишите автору в Twitter @travisjeffery.

Жмите лайк и поделитесь статьей, если вы считаете ее полезной.

Спасибо за прочтение.

Подпишитесь на рассылку

Раз в неделю мы будем присылать на почту дайджест с лучшими материалами

Похожие записи

Каллиграфия и леттеринг для начинающих

Изучение каллиграфии – непростой процесс, но с правильными методическими материалами это может занять меньше времени, чем вы думаете

Zeplin.io – способ подружить дизайнера и верстальщика

Zeplin – это новый и очень перспективный сервис, цель которого подружить и ускорить взаимодействие дизайнеров и других разработчиков. На данный момент сервис вышел с бета тестирования и уже его испытать в действии. Поддержка Sketch уже есть из коробки, а Photoshop появится немного позже.

Руководство дизайнера по DPI и PPI

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