Как правильно оповестить пользователю о занятых его данных?
Есть регистрация и авторизация и если скажем вы ввели почту верную, а пароль неверный, то вы пользователю сообщите о том, что пароль или почта неверная. Так вот, я часто слышал такую фразу от разработчиков, что нельзя пользователю сообщать о том, что почта верная, а пароль неверный или на оборот. Мол, даем злоумышленнику понять, что почта верная и достаточно ему просто подобрать пароль.
Хорошо! Но ведь у нас еще есть Форма регистрации и мы можем туда вставить почту и узнаем, есть ли она в базе или нет. Тогда смысл писать пользователю такое сообщение «почта или пароль неверные» если мы можем по факту через регистрацию узнать? Или мы рассчитываем на то, что злоумышленник тупой? :Д
Дополнительно:
Ответы:
Достаточно сообщить "Почта и/или пароль не верные". И пусть пользователь сам решает, где он ошибся, и исправляет...
А если пользователи входят по имени пользователя, а не по ящику, то и почтовый ящик ни кто не вычислит.
- Если вы написали это про регистрацию. Поздравляю, вы завели пользователя в заблуждение и он уйдет от вас :)
А если про авторизацию, то дочитайте до конца, что я вообще написал
- YAHEFID, а кто, где, когда, и почему во время регистрации пишет "почта или пароль не верны"?
А от вычисления почтовых адресов пользователей можно защититься капчей. Или неиспользованием почтовых адресов для входа.
- AUser0,
Есть регистрация и авторизация и если скажем вы ввели почту верную, а пароль неверный, то вы пользователю сообщите о том, что пароль или почта неверная.
Читайте до конца, а после пишите. Капча ваша никак не поможет.
- YAHEFID, рассуждайте до конца. Что, на вашей умозрительной базе пользователей перебор почтовых адресов при 1000 попытках даёт 1000 совпадений? И при этом у вас не используется капча? Ну тогда ССЗБ!
- AUser0, в ручную найти верную почту и дальше подбором. Капча ваша тут вообще не поможет. Вас вообще не смущает такие новости как «В телеграмме взломали человека» и тд? В общем, закройте тему, вы вообще не понимаете о чем идет речь
Точка
- YAHEFID, ааа, вот оно что... Соболезную вашей утрате!
Многоточие.
Регистрация может быть для:
1) Пользователей-людей
В этом случае используется регистрация через форму. Там есть капчи, токены и т.д.
В общем, для регистрации надо будет вручную это все вводить (с клавиатуры).
2) Других машин
Используются специальные токены. Эти токены могут использоваться только этим клиентом, должен быть секретным. Пример - токен бота в ТГ.
В итоге:
1) Для регистрации пользователя, нужно вручную это все вводить. Тут есть очень много ограничителей для автоподборщиков
2) Токены бота знает только сам разработчик
- Ну мало где стоит капча и бывает парой, что капчу обходят. Только вопрос, а токены тут причем? Они никак не помогут тут вообще :)
- 1. Я говорю про XSRF токены
2. Не все сайты отправляют "Почта ИЛИ пароль неверны", кто-то сразу говорит что именно неверно
3. Площадь атаки можно только сократить, но никак не устранить полностью - всегда будет лазейка для атаки - Сергей Соловьев, вы читали, что я написал? Повторяю еще раз, если вы сообщите пользователю просто «неверно» он через форму регистрации сможет узнать, верная ли почта или нет, а если в регистрации это написать, то вы пользователя просто в заблуждение заведет и он уйдет от вас
- Да я читал.
Поэтому и говорю:
- регистрация происходит вручную - злоумышленник устанет это все делать вручную. Здесь не говорят, что почта и пароль неверные - это не имеет смысла
- сообщение о том, что "пароль или почта неверные" указывается именно во время авторизации - Сергей Соловьев, авторизация тоже происходит в ручную и смысл тогда писать «почта или пароль неверный» если по факту я все равно могу даже в ручную узнать верная ли почта или нет. В этом логике вообще нет. А во-вторых - я не писал о том, что нужно это писать именно в регистрации. Вы вообще не понимаете, что пишите :)
Легче тогда пользователю уже сообщить, что наверное.
- В чем тогда вопрос я не понял
Хотите, чтобы никто не подобрал почту - не используйте почту при регистрации/авторизации. Аутентифицируйте пользователя по придуманному им логину.
Нужна привязка пользователя к почте - отправляйте на указанный им адрес сообщение со ссылкой для привязки. Не сообщайте ему, что адрес уже есть или неверный.
-
Не сообщайте ему, что адрес уже есть или неверный.
это вы про авторизацию?
- YAHEFID, Вы читать умеете? Не используйте электронную почту ни при регистрации, ни при авторизации.
- Rsa97, то есть, вы считаете, что почту можно узнать, а логин нет? Смешно
- YAHEFID, И что вам даст знание логина? От подбора паролей защищаются другими способами, а не скрытием логинов.
- Rsa97, серьезно? Ух ты! Наверное никого не взламывают, просто случайно выставляют свои данные на показ (сарказм)
Вы сами только что написали, что авторизуйте по логину. Какая разница по чему я буду авторизовать его? Это не отменяет тот факт, что я могу в ручную узнать какой логин/почта есть в базе и дальше подбором. Вы тоже далек от вопроса :)
- YAHEFID, ты само описал ситуацию что попыткой регистрации с почтовым ящиком можно выяснить его занятость, т.е. наличие пользователя с таким 'логином', если же пользователь будет авторизоваться логином, то знание почты ничем не поможет щлоумышленнику
лично я не считаю необходимостью скрывать в момент логина на основе почтового ящика что именно введено неправильно... это не повысит значимо безопасность, но отбирает крошку комфорта у легитимного пользователя.
Любой способ приемлем для оповещения о неверном логине/почты при регистрации или авторизации. Главное, не скатиться до кейса "Вы ввели неверный пароль, который уже занят пользователем <логин/почта>".
Мол, даем злоумышленнику понять, что почта верная и достаточно ему просто подобрать пароль.
Это неправильные разработчики, и они делают неправильный мед код...
Во первых не понятно чего вы боитесь - взлома почты или взлома аккаунта вашего сайта?
Если первое - это как минимум глупо, все сервисы почты достаточно хорошо защищены от атак перебором, 99,9% взломов - фишинг и социнженерия. А емэйл достаточно публичная информация, чтобы не парится конкретно с вашим сайтом.
Если второе - у вас так же должна быть защита от перебора, а подтверждение наличия зарегистрированности емэйла - нормальная практика, НИЧЕГО не дающая злоумышленнику. Ну, в случае ХОТЬ КАКОЙ-ТО РЕАЛЬНОЙ, а не мнимой защиты (как в случае "ой, нельзя говорить что такой имэйл уже есть, а то у нас от перебора защиты нету...").
Спокойно отдавайте сообщение об ошибке, при введении 3 и более раз неверного пароля в авторизации - капча. При введении более 3 раз неверного пароля с капчей - письмо на мыло с кодом разблокировки, взломщику бан по айпи и сообщение о возможности разблокировки через емэйл.
- Блокировать атакаующего - однозначно, но после 10-30-50 попыток, а перед этим - сложной капчи достаточно. Блокировать "атакованный" аккаунт - как-то через чур жестоко, владелец может быть ни сном, ни духом об атаке, а его бац - и заблокировали, и сиди, выпутывайся вместо обычного доступа... Выпутался - а тут бац, опять бан!
Ну, чисто гипотетически, и ни как не связано с выдумками YAHEFID.
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Для того чтобы оповестить пользователя о занятых его данных, можно использовать различные методы, в зависимости от контекста и целей приложения. Вот несколько способов, которые можно применить:
1. Визуальное оповещение: одним из наиболее распространенных способов является визуальное оповещение пользователя о занятости его данных. Например, можно добавить специальную иконку или текстовое сообщение рядом с данными, которые уже заняты другим пользователем. Это поможет пользователю быстро понять, что данные недоступны для редактирования.
2. Модальное окно: другой способ - показать модальное окно с информацией о том, что данные уже используются. В модальном окне можно предложить пользователю подождать, попробовать позже или связаться с администратором для разрешения конфликта.
3. Автоматическое обновление: если данные могут быть заняты в реальном времени (например, при работе с онлайн-формами), можно добавить функционал автоматического обновления страницы или блока данных, чтобы пользователь мог видеть актуальную информацию о доступности данных.
Пример использования визуального оповещения на PHP:
<?php $isDataBusy = true; // Переменная, показывающая занятость данных if ($isDataBusy) { echo "<div style='color: red'>Данные уже заняты другим пользователем</div>"; } ?>
Это лишь несколько способов оповещения пользователя о занятости его данных. Важно выбрать подходящий способ, который будет удобен для пользователя и соответствовать целям вашего приложения.