Угроза безопасности при раскрытии адресов электронной почты и имен пользователей?

Joomla имеет встроенную функцию на экране входа в систему «Я забыл свое имя пользователя», так что вы можете ввести свой адрес электронной почты, и имя пользователя будет отправлено вам по электронной почте.

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

Создает ли это какие-либо риски безопасности? Это вообще хорошая идея?

SQL Injection: Атаки в реальной жизни и как это вредит бизнесу
SQL Injection: Атаки в реальной жизни и как это вредит бизнесу
Один-единственный вредоносный запрос может нанести ущерб вашему бизнесу. Уязвимости вашего кода могут привести к:
2
0
1 264
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Я бы сказал, что это угроза безопасности слабый для менее опытных пользователей. Для пользователя со слабым паролем, особенно если он связан с их именем пользователя или адресом электронной почты, раскрытие имени пользователя делает их уязвимыми для взлома их учетной записи. Кроме этого, я не могу придумать причину, по которой это могло бы стать проблемой. Если у пользователя хорошие пароли, это вообще не имеет значения.

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

Текущая реализация требует, чтобы пользователь указал своя адрес электронной почты и прочитал полученное электронное письмо, чтобы получить имя пользователя.

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

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

В общем, изменение любых связанных с безопасностью функций, чтобы сделать вещи «проще», чем стандартная реализация, вероятно, влечет за собой риск для безопасности. +1 за исследование через SO перед внедрением!

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

nickf 19.11.2008 07:01

@nickf: Верно, но он не знал адрес электронной почты, пока не угадал его с помощью вашей системы. :-)

Adam Liss 19.11.2008 16:00

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

nickf 20.11.2008 02:33

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

Adam Liss 20.11.2008 07:51

На первый взгляд это кажется «плохой идеей», потому что вы позволяете кому угодно:

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

Если имена пользователей и почтовые адреса рассматриваются на вашем сайте как «личная» информация и еще не переданы, то я бы не стал реализовывать поиск имени пользователя по электронной почте. Фактически вы понижаете планку безопасности в 1 раз:

  • В настоящее время для поиска имени пользователя требуются как адрес электронной почты, так и полные учетные данные пользователя (чтобы они могли получить ответ)
  • После изменения все, что им нужно, - это адрес электронной почты.

Возможно, что более важно, вы создаете проблему с конфиденциальностью, которую необходимо решить (как указано в @SoapBox).

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

Это бы все упростило, например, опубликовать руководство для детей по сценариям на как взломать мой сайт:

  1. Получите список адресов электронной почты от предпочтительного поставщика
  2. Зайдите на мою страницу самообслуживания с переводом почты на имя пользователя и просмотрите список (для этого простой скрипт)
  3. Запустить атаку по словарю на сайт по полученному списку имён

Итог - я думаю, вам лучше оставить эту функцию как есть.

Другие вопросы по теме