Неверное имя пользователя или пароль
Практически любой сайт, если попытаться авторизоваться с неверными данными, выдаст стандартное сообщение: «Неправильное имя пользователя или пароль». Если вы разрабатываете какой-то сайт, то скорее всего, он говорит то же. Считается, что такой расплывчатый текст усложняет работу хакерам, которые взламывают аккаунты на сайте. Взломщики будут тратить много времени на попытки подобрать пароль к пользователям, которые даже не зарегистрированы. Простым людям от этого менее удобно, но это обычный компромисс между удобством и безопасностью.
В реальности всё это работает не совсем так успешно. К примеру, недавно я забыл пароль от сервиса Grammarly. Изначально при входе я увидел типичную надпись.
Пошел восстанавливать пароль, там сообщение тоже расплывчатое: если вы зарегистрированы, то письмо отправлено, но если такого аккаунта нет, то ничего не отправлено.
Письма не всегда приходят быстро, поэтому я какое-то время подождал, но мне так ничего и не пришло. Потом нашел у себя в корзине маркетинговое письмо от Grammarly, определил по нему, на какую почту я зарегистрирован, и зашел.
Но если бы я был плохим парнем (или если бы хотел получать в два раза больше маркетинговых писем), то просто пошел бы на страницу регистрации. Когда вводишь там занятый почтовый адрес, сайт честно сообщает об этом.
Я ни разу не видел сайтов, на которых конспирация во время входа и восстановления пароля имела бы смысл. Хакеры могут просто подобрать логин на регистрации, а потом уже перебирать пароли. Так что никакого компромисса между удобством и безопасностью здесь нет, сайты затрудняют жизнь пользователям без какой-либо выгоды.
Если вы хотите сделать авторизацию на сайте безопаснее, есть более эффективные способы:
- Ограничивайте количество попыток ввода неправильного пароля, а потом показывайте капчу или блокируйте.
- Помогайте пользователю выбрать надежный пароль с помощью индикаторов сложности пароля.
- Добавьте двухфакторную аутентификацию.
- Зарегистрируйте логины-ханипоты (вроде
admin@yoursite.com
) и блокируйте тех, кто пытается в них войти.
И прямо говорите людям, если они ввели несуществующий логин. Когда Мейлчимп начал так делать, они собрали статистику и выяснили, что количество ошибок при авторизации упало втрое. Это очень хороший результат.
Поделиться ссылкой:
26 ноября 2017 11:55
Комментарии
Вообще-то заставлять хакера проверять логины на форме регистрации - таки усложнение его работы. С точки зрения дешевизны не сообщать подробности ошибки - довольно выгодная защита.
Ограничение количества попыток, два фактора - куда более дорогие решения.
Не очень понятен совет 4. Кого/что я должен блокировать?
Антон, а в чем усложнение? В том, что хакеру придется потратить немного времени и дописать скрипт для работы с формой регистрации? Не очень надежно получается.
Nick, схема такая:
1. Берете какие-нибудь очевидные имена (например, admin)
2. Регистрируете их у себя на сайте
3. Никогда сами ими не пользуетесь
4. Сразу безжалостно блокируете всех, кто пытается в них войти, потому что это явные злоумышленники.
Не знаю, насколько это эффективно, потому что сам ни разу так не делал, но советы подобные видел.