Как генерировать случайный пароль или временный URL, для того, чтобы изменить пароль в Платформе Зенда?

Если oAuth2Authentication.getAuthorities() является List, вы можете легко создать Set из него:

user.setAuthorities(new HashSet<GrantedAuthority>(oAuth2Authentication.getAuthorities()));

Обратите внимание, что GrantedAuthority должен иметь правильную реализацию hashCode() и equals(). ] для использования в качестве члена HashSet.

7
задан Andrew 16 April 2009 в 05:09
поделиться

1 ответ

Zend Framework does not have a password-generating class. Here's an article on how to use the PEAR module Text_Password to generate a password: https://web.archive.org/web/1/http://blogs.techrepublic%2ecom%2ecom/howdoi/?p=118

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


Вот несколько советов, которые я могу сделать в Zend Framework:

  • Определите таблицу AccountReset с полями: reset_id (Первичный ключ GUID), account_id (ссылка на Accounts.account_id ) и срок действия (отметка времени). он ищет свой параметр reset_id в таблице AccountReset . Если этот GUID существует и время истечения не прошло, предоставьте пользователю форму для изменения своего пароля (без необходимости аутентификации и входа в систему).
  • Если resetAction () получает запрос без GUID, или GUID не существует в базе данных, или у этой строки истек срок действия , тогда это действие может вместо этого предоставить пользователю кнопку для запуска нового сброса запрос и отправьте письмо с новым GUID. Не забудьте сделать эту кнопку запросом POST!

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

Если вы хотите быть еще более осторожным, вы можете записать IP-адрес клиента в таблице AccountReset и потребовать изменения пароля. от клиента с тем же IP-адресом в пределах этого 30-минутного окна.

Это только из-под контроля, и я не реализовал его и не оценил его на предмет надлежащей безопасности. Если вы несете ответственность за обеспечение безопасности, вы обязаны прочитать о проблемах безопасности. Хорошо известный ресурс по безопасности PHP - это http://phpsecurity.org/ .

Это всего лишь секрет, и я не реализовал его и не оценил для обеспечения надлежащей безопасности. Если вы несете ответственность за обеспечение безопасности, вы обязаны прочитать о проблемах безопасности. Хорошо известный ресурс по безопасности PHP - это http://phpsecurity.org/ .

Это всего лишь секрет, и я не реализовал его и не оценил для обеспечения надлежащей безопасности. Если вы несете ответственность за обеспечение безопасности, вы обязаны прочитать о проблемах безопасности. Хорошо известный ресурс по безопасности PHP - это http://phpsecurity.org/ .

22
ответ дан 6 December 2019 в 08:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: