Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Безопасный сброс пароля на сайте 
V
    Опции темы
Arantir
Дата 25.4.2013, 12:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Рыбак без удочки
**


Профиль
Группа: Участник
Сообщений: 960
Регистрация: 18.11.2012

Репутация: 16
Всего: 55



Хоть вероятность этого крайне мала (<< 1 / 10^40 для токена из 30 символов), но теоретически кто-то может ввести токен "от балды" и попасть на страницу смены пароля. Но если такое случится, то второй раз в ближайшие миллион лет не случится точно =)))

Но стоит заметить, что в нескольких случаях я не видел указания логина на странице восстановления пароля. То есть, даже, если бы кто-то невероятным образом угадал токен, то он не узнал бы логина и не смог бы войти под моим аккаунтом. А я бы все равно смог восстановить пароль еще раз.

Для утешения паранойи можете сделать связку логин+токен в отправляемой на email ссылке. Если логины не в открытом виде (логин не является именем пользователя), то угадать просто нереально.

Это сообщение отредактировал(а) Arantir - 25.4.2013, 12:03


--------------------
interface Жопа {
    // ATTENTION: has to be implemented by every class of the project for proper project work
}
PM   Вверх
yngwie
Дата 25.4.2013, 14:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 17.1.2008

Репутация: нет
Всего: нет



Arantir К сожалению в качестве логина у меня используется email. А просить пользователя вводить email было бы глупо. Как считаете?
PM MAIL   Вверх
Arantir
Дата 25.4.2013, 14:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Рыбак без удочки
**


Профиль
Группа: Участник
Сообщений: 960
Регистрация: 18.11.2012

Репутация: 16
Всего: 55



А я не предлагал просить пользователя вводить email. Я предлагал делать выборку из БД по двум значениям — логин+токен. Вы же не просите пользователя вводить токен, он передает по ссылке. Вот там же рядом еще логин приделать.
Ведь если ссылка содержит только токен, то кто-то может сесть и начать перебирать все возможные токены. Если пользователей на сайте очень много и одновременно существует очень много активных токенов, то хацкер может совершенно случайно угадать какой-то из них.
А если в ссылке еще и логин, то подобрать единственный возможный токен к какому-то логину уже просто нереально.


--------------------
interface Жопа {
    // ATTENTION: has to be implemented by every class of the project for proper project work
}
PM   Вверх
yngwie
Дата 25.4.2013, 15:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 17.1.2008

Репутация: нет
Всего: нет



А имеет ли смысл записывать IP с которого был сделан запрос на восстановление пароля?
PM MAIL   Вверх
Arantir
Дата 25.4.2013, 16:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Рыбак без удочки
**


Профиль
Группа: Участник
Сообщений: 960
Регистрация: 18.11.2012

Репутация: 16
Всего: 55



Записывать может и имеет, а вот проверять — нет. У огромнейшего числа пользователей IP динамические и/или "серые". Это значит не только то, что пока пользователь прочтет письмо, у него вполне IP может уже поменяться, но и то, что под одним и тем же IP может быть и 5, и 10, хоть 100 пользователей. Конечно, это не значит, что все они будут на вашем сайте, но факт остается фактом.

Зачастую IP, с которого поступил запрос восстановления, указывается пользователю в письме, чтобы тот сам оценил его значение для себя.


--------------------
interface Жопа {
    // ATTENTION: has to be implemented by every class of the project for proper project work
}
PM   Вверх
yngwie
Дата 25.4.2013, 18:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 17.1.2008

Репутация: нет
Всего: нет



А что если в ссылке, по которой пользователь переходит из письма, добавлять еще email. Тогда можно проверять email в связке с токеном, только нсколько это безопасно?
PM MAIL   Вверх
Arantir
Дата 25.4.2013, 19:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Рыбак без удочки
**


Профиль
Группа: Участник
Сообщений: 960
Регистрация: 18.11.2012

Репутация: 16
Всего: 55



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

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


--------------------
interface Жопа {
    // ATTENTION: has to be implemented by every class of the project for proper project work
}
PM   Вверх
yngwie
Дата 25.4.2013, 20:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 17.1.2008

Репутация: нет
Всего: нет



Цитата(Arantir @  25.4.2013,  19:33 Найти цитируемый пост)
Для начала подумайте, зачем кому-то вообще может понадобится ломать чей-то аккаунт на вашем сайте. 

Мое приложение работает по модели SAAS, будет очень не хорошо если кто-то получит доступ к чужим данным.
PM MAIL   Вверх
Arantir
Дата 25.4.2013, 20:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Рыбак без удочки
**


Профиль
Группа: Участник
Сообщений: 960
Регистрация: 18.11.2012

Репутация: 16
Всего: 55



Если пользователи платят за это деньги, то, думаю, вы можете себе позволить, к примеру, упомянутые в этой теме СМС-подтверждения для разных важный действий (например, восстановления пароля).
В любом случае для обеспечения высокого уровня безопасности понадобятся средства. На надежный сервер, для защиты от ddos, для оплаты SSL-сертификата и всякое такое...


--------------------
interface Жопа {
    // ATTENTION: has to be implemented by every class of the project for proper project work
}
PM   Вверх
yngwie
Дата 25.4.2013, 20:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 17.1.2008

Репутация: нет
Всего: нет



Ok. Спасибо Вам большое за помощь!
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0916 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.