Простой текстовый пароль против автологина - PullRequest
0 голосов
/ 16 февраля 2012

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

Какие существуют другие варианты для повышения безопасности восстановления пароля?

Спасибо.

Ответы [ 3 ]

2 голосов
/ 16 февраля 2012

Вы можете отправить им URL, который позволит им самостоятельно сбросить пароль.

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

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

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

1 голос
/ 16 февраля 2012

В том же духе, что и отличный ответ Брэндона, вот что мы делаем:

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

  2. Когда пользователь забывает свой пароль, предоставьте ему форму, в которой он вводит свой адрес электронной почты, и нажмите «Отправить».

  3. Когда они отправляют свой адрес электронной почты, создайте строку таблицы с двумя основными частями: первая - это маркер сброса пароля (для этого мы используем Guid). Маркер должен иметь временную метку, чтобы вы знали, когда он был создан и когда он истекает (срок действия нашего сертификата истекает через 2 часа после отправки). Второй фрагмент - это секретный код, который пользователь должен будет ввести, чтобы сбросить свой пароль.

  4. Отправьте электронное письмо пользователю со ссылкой на страницу, которая будет принимать токен и секретный код. Когда они нажимают на ссылку (или посещают страницу и вводят код вручную), вы можете предоставить им страницу, которая позволяет им менять свой пароль, не зная его предыдущего значения.

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

0 голосов
/ 16 февраля 2012

Я бы не стал отправлять действительный пароль учетной записи в виде простого текста на адрес электронной почты пользователя.Причина этого в том, что если кто-то взломал адрес электронной почты пользователя, то теперь у него есть действительный пароль.Скорее всего, этот пароль будет использоваться и для других систем.

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

Facebook использует сопоставление изображений друзей с именами.Если у вас есть их DOB и адрес, вы можете использовать это (не так безопасно).Или вы можете задать конкретный контрольный вопрос и ответы, которые были бы лучше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...