Перейти к содержимому


Фото
- - - - -

Напоминание пароля - детская ошибка


  • Чтобы отвечать, сперва войдите на форум
14 ответов в теме

#1 Kors

Kors
  • Фрилансер
  • 3 522 сообщений
  • Программирование
  • Версия CMS:1.x, 2.x
  • Откуда:Россия

Опубликовано 18.04.2016 - 09:53

Оказалось, что в Simpla совершенно совершенно неверно реализован механизм восстановления пароля пользователем.

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

Например,
1. Если заказать смену пароля в одном браузере, а потом открыть ссылку из письма в ДРУГОМ, то восстановить пароль по ссылке не удастся - Страница не найдена.
2. Если заказать смену пароля, потом ЗАКРЫТЬ браузер, то восстановить пароль по ссылке из письма не удастся уже ни в каком браузере.

Ситуации 1 и 2 - вполне житейские, например, пользователь может использовать по умолчанию для WEB-серфинга один браузер, а просматривать почту в другом - при типовой работе возникнет ситуация 1.

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

Надеюсь, уважаемый автор поправит свой явный брак...
 



#2 zay4217

zay4217
  • Пользователь
  • 7 сообщений
  • Пользователь

Опубликовано 18.04.2016 - 10:19

Kors, то есть у вас тоже не работает, да?



#3 Kosjak76

Kosjak76
  • Модератор
  • 3 672 сообщений
  • Программирование
  • Версия CMS:1.x, 2.x
  • Откуда:Харьков, Украина

Опубликовано 18.04.2016 - 10:39

Вы считаете это ошибкой - это ваше право :)

Я, например, так не считаю.



#4 Kosjak76

Kosjak76
  • Модератор
  • 3 672 сообщений
  • Программирование
  • Версия CMS:1.x, 2.x
  • Откуда:Харьков, Украина

Опубликовано 18.04.2016 - 10:45

https://habrahabr.ru/post/167013/#uniq

Хранение в сессии - дополнительная безопасность.



#5 Noxter

Noxter

    Simpla Developer

  • Фрилансер
  • 6 207 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 18.04.2016 - 13:30

Как по мне все верно работает, точно такую же систему восстановления используют многие CMS, я лично использую что-то похожее но не на сессиях а на куках.
Заявление Корса херня полная, если так докапываться то вся симпла по его мнению не правильная.
Слушай Корс почему бы тебе не сменить CMS в целом раз ты весь такой недовольный?

#6 Kors

Kors
  • Фрилансер
  • 3 522 сообщений
  • Программирование
  • Версия CMS:1.x, 2.x
  • Откуда:Россия

Опубликовано 18.04.2016 - 15:03

Вы считаете это ошибкой - это ваше право :)
Я, например, так не считаю.

 
Спасибо, я воспользуюсь своим правом и буду считать ошибкой, когда по присланному в письме URL открывается - Страница не найдена....
 

...точно такую же систему восстановления используют многие CMS...

 
Если сообщите вместо общих слов что конкретное, можно обсудить...
 
Возьмем, например, VamShop. Система довольно древняя, ей более десятка лет. Создавалась в свое время на основе еще более старой системы, созданной еще в прошлом веке. Так там очень простая и четкая схема - при запросе на восстановление пароля создается случайный код, который записывается в таблицу пользователей. И, соответственно, позже проверяется. Все просто, удобно, работает без ограничений. Изобретено реально еще в прошлом веке...
 



#7 Noxter

Noxter

    Simpla Developer

  • Фрилансер
  • 6 207 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 18.04.2016 - 17:00

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

Спасибо за направление, попробую сделать что-то подобное и возможно выложу на форуме как готовое решение.

#8 Kors

Kors
  • Фрилансер
  • 3 522 сообщений
  • Программирование
  • Версия CMS:1.x, 2.x
  • Откуда:Россия

Опубликовано 18.04.2016 - 18:13

я лично использую что-то похожее но не на сессиях а на куках.

 

Насколько я понимаю, при этом должен проявляться похожий дефект: если запрос на восстановление отсылается одним браузером, а ссылка потом открывается другим, то работать не должно...



#9 Noxter

Noxter

    Simpla Developer

  • Фрилансер
  • 6 207 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 18.04.2016 - 18:45

Насколько я понимаю, при этом должен проявляться похожий дефект: если запрос на восстановление отсылается одним браузером, а ссылка потом открывается другим, то работать не должно...

Ну это надо быть уникалом чтобы отправить запрос с одного браузера а почту открыть на другом и открыть ссылку в третьем браузере.
Впервые о таком слышу)
Да судя по всему дефект такой же, но спасибо я это исправлю.
Насколько я понял логику Корса, то при отправке запроса выполняется поиск по введенному email и если такой есть то в БД пользователю с этим email записываем заранее сформированный хеш-код, который также подставляется к ссылке в письме, далее при переходе по ссылке сверяется хеш в $_GET и хеш в БД, после происходит авторизация.

#10 Kors

Kors
  • Фрилансер
  • 3 522 сообщений
  • Программирование
  • Версия CMS:1.x, 2.x
  • Откуда:Россия

Опубликовано 18.04.2016 - 18:55

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

 

Некоторые сведения можно почерпнуть тут:

http://ruseller.com/...p?id=913&rub=37



#11 Noxter

Noxter

    Simpla Developer

  • Фрилансер
  • 6 207 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 18.04.2016 - 19:29

Интересно почему такой знаток как Корс не предложит такое решение коммюнити абсолютно безвозмездно?
Или деньги для него превыше всего?

#12 Kors

Kors
  • Фрилансер
  • 3 522 сообщений
  • Программирование
  • Версия CMS:1.x, 2.x
  • Откуда:Россия

Опубликовано 18.04.2016 - 20:38

Интересно почему такой знаток как Корс не предложит такое решение коммюнити абсолютно безвозмездно?
Или деньги для него превыше всего?

 

Есть несколько причин:

1. Он считает, что довольно непродуктивно плодить исправления ошибок на форуме. По мнению Kors-а, ошибки должен исправлять автор Simpla в дистрибутиве. Чтобы простой пользователь СРАЗУ получал более качественный продукт, а не рыскал по форуму и выискивал рецепты исправления десятков ошибок...

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

3. По теме Kors уже сделал кое-что конструктивное. Он описал ошибку полно и точно. Предложил также схему решения. Диагностировать ошибку - это совсем не ерунда, как иногда думают. Вот в теме

http://forum.simplac...минание-пароля/

3.1 mishanya  не смог распознать причину, хотя ТС дал хорошее описание ошибки,

3.2 Noxter задал уточняющий вопрос совсем не в зуб ногой. Причем даже после сообщения Kors-а, когда все было объяснено и разжевано.

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

4. Здесь в теме Noxter сначала в #4 высказался пренебрежительно по поднятому вопросу, а лишь потом, вероятно при некотором размышлении, решил иначе: "я это исправлю". Стало быть, признал наличие ошибки...

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



#13 yr4ik

yr4ik
  • Фрилансер
  • 814 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:1.x, 2.x
  • Откуда:Украина Чернигов

Опубликовано 18.04.2016 - 21:33

  1. Он считает, что довольно непродуктивно плодить исправления ошибок на форуме. По мнению Kors-а, ошибки должен исправлять автор Simpla в дистрибутиве. Чтобы простой пользователь СРАЗУ получал более качественный продукт, а не рыскал по форуму и выискивал рецепты исправления десятков ошибок...

А я считаю что выкладывать исправления - эта таки довольно продуктивно! С учетом того что новых релизов давно не было

 

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

Если там нет проверки по времени запроса - то считаю это не совсем четкой схемой...  

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

тем более с нынешним разнообразием различного трипера который бомбит почты 



#14 Kors

Kors
  • Фрилансер
  • 3 522 сообщений
  • Программирование
  • Версия CMS:1.x, 2.x
  • Откуда:Россия

Опубликовано 19.04.2016 - 08:39

А я считаю что выкладывать исправления - эта таки довольно продуктивно! С учетом того что новых релизов давно не было

 
Все относительно. Вот, допустим, нашел кто-то ошибку. Что дальше? Возможные дальнейшие основные ситуации:
ОС1. Написали на форум сообщение про ошибку.
ОС2. Написали на форум сообщение про ошибку и выложили исправляющую доработку.
ОС3. Добились того, что автор внес исправление в дистрибутив.

ОС2, конечно, продуктивнее, чем ОС1 - в этом Ваша правда.
А вот ОС3, не только продуктивнее, чем ОС1 и ОС2, но и вообще представляет собой идеал - и это моя основная идея.

Тут на форуме, многие пропагандируют пассивный отсупательный стиль - мол, автор Simpla не хочет действовать по ОС3, потому нам надо действовать по ОС2. А моя позиция - надо больше и резче критиковать этого автора за такое отношение. К сожалению, мало кто из фрилансеров меня в этом поддерживает. А если бы они в каждой теме про ошибку становились в очередь и писали друг за другом "Уважаемый автор Simpla! Проявите серьезное отношение и уважение к своим клиентам, исправьте эту ерундовую ошибку в дистрибутиве", то, возможно, и ситуация поправилась бы. А пока то, что касается исправления ошибок, похоже на болото - застой полный...
 

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

 

Спасибо за хорошее дельное замечание!



#15 Gruzin

Gruzin
  • Пользователь
  • 308 сообщений
  • Верстка, Пользователь
  • Версия CMS:2.x
  • Откуда:Минск

Опубликовано 15.05.2017 - 15:44

Всем привет. В итоге кто нибудь может исправить это дело?






0 пользователей читают эту тему

0 пользователей, 0 гостей, 0 скрытых