1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/Discuz-DiscuzX

 / Детали:

Объединение! После слияния Pull Request 1313 проблема с открытым доступом к защищённому входу в систему через...

Предстоит сделать
Владелец
Создано  
10.03.2025

электронную почту и автоматическим выбором аккаунта при входе не была полностью исправлена.

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

По результатам тестирования возможной причиной является строка 98 файла class_member.php:

$_GET['username'] = $result['ucresult']['username'];

Это приводит к тому, что условие на строке 129 всегда истинно:

$_GET['username'] !== $result['ucresult']['email']

Когда на странице forum.php используется безопасный вопрос или проверочный код, значение $_GET['username'] становится равным имени пользователя (а не адресу электронной почты, который был введен на текущей странице), что приводит к постоянному истинному значению условия на строке 129 и ошибке входа.

После удаления строки 98 проблема исчезает, но неясно, может ли это вызвать проблемы в других местах.При использовании страницы forum.php для входа в верхнем правом углу, если аккаунт был настроен с безопасными вопросами или форум имеет включённые проверочные коды при входе, открывается окно "Please fill in the following information", чтобы вы могли ввести ответ на безопасный вопрос или проверочный код. После завершения ввода и попытки входа выводится сообщение об ошибке "Вашей группе пользователей требуется использовать электронную почту для входа".По результатам тестирования возможной причиной является строка 98 файла class_member.php:

$_GET['username'] = $result['ucresult']['username'];

Это приводит к тому, что условие на строке 129 всегда истинно:

$_GET['username'] !== $result['ucresult']['email']

Когда на странице forum.php используются безопасные вопросы или проверочные коды, значение $_GET['username'] становится равным имени пользователя (а не адресу электронной почты, который был введен на текущей странице), что приводит к постоянному истинному значению условия на строке 129 и ошибке входа.

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

Комментарий (0)

GitLife Service Account Задача создана

Вход Перед тем как оставить комментарий

Статус
Ответственный
Контрольная точка
Pull Requests
Связанные запросы на слияние могут быть закрыты после их объединения
Ветки
Дата начала   -   Крайний срок
-
Закрепить/Открепить
Приоритет
Участники(1)
1
https://api.gitlife.ru/oschina-mirror/Discuz-DiscuzX.git
git@api.gitlife.ru:oschina-mirror/Discuz-DiscuzX.git
oschina-mirror
Discuz-DiscuzX
Discuz-DiscuzX