В настоящее время я использую Symfony 3 и работаю над аутентификацией. Мои пароли в базе зашифрованы. Для аутентификации symfony возвращает данные, отправленные через форму соединения, и передает их в мой корень login_check. Я хочу зашифровать пароль пользователя до того, как symfony передаст его в login_check. Вот часть моего security.yml. Если вам нужна дополнительная информация, не стесняйтесь обращаться ко мне. Спасибо большое !
PS: извините за мой английский ^^
intranet:
pattern: ^/intranet
anonymous: ~
provider: Auditeurs
form_login:
default_target_path: intranet_dashboard
login_path: intranet_login
check_path: intranet_login_check
logout:
path: intranet_logout #nom de la route
target: /intranet/
providers:
Auditeurs:
entity:
class: AppBundle\Entity\Auditeur
property: username






Как только запрос login_check попадает в ваше приложение Symfony, он отправляется на брандмауэр, который хеши пароль и сравнивает его с базой данных. Следовательно, «шифрование» перед этим не совсем имеет смысла, у вас просто выполняется несколько строк маршрутизации «сантехника». Скорее всего, вы захотите хэшировать пароли на стороне клиента, используя некоторую библиотеку Javascript. Такой есть SJCL.
Однако преимущества такого подхода минимальны, если ваш сайт обслуживается по HTTPS (как и должно быть).
Последнее замечание: пароль - хешированный (с использованием кодировщик из конфигурации Symfony), а не зашифрованный. Хеш - это односторонняя функция. С другой стороны, зашифрованные пароли можно восстановить из базы данных (чего никогда не должно происходить). Рекомендуется BCrypt (я подозреваю, что теперь это значение по умолчанию в Symfony).
Не могли бы вы подробно описать сценарий такой атаки? Думаю, дело не в утечке пароля зашифрованного текста, но повторы можно настроить множеством разных способов, если соединение будет перехвачено (например, файлы cookie). Поэтому советуем использовать HTTPS.
Если вы хэшируете пароли на стороне клиента, то хешируете является пароль, и у вас все равно возникают те же проблемы с открытым текстом / воспроизведением. Используйте HTTPS.