Мне необходимо внедрить изменения на уровне кода и базы данных в моём приложении Discourse на Ruby on Rails, чтобы соответствовать моим конкретным требованиям.
Обновить метод шифрования паролей. В настоящее время Discourse использует «PBKDF2» для шифрования паролей.
В соответствии с моими требованиями мне нужно переключиться на «MD5» вместо «PBKDF2».
Я настроил код в своей локальной среде, а также развернул Discourse в производственной среде с помощью Docker.
Когда я обновляю локальный код в соответствии с моими требованиями, мне нужно заново развернуть обновлённый код в производственной среде. Однако в настоящее время я использую официальный Docker-файл для Discourse в производственной среде. Как мне создать новый Docker-файл и как получить доступ к базе данных PostgreSQL для приложения Discourse в производственной среде?
Это выглядит как значительное снижение уровня безопасности. MD5 не подходит для хеширования паролей. Такое изменение затронет критически важную часть Discourse, и вам также придётся поддерживать его во всех будущих выпусках.
Возможно, мы сможем предложить более подходящий подход, если вы объясните, чего именно вы пытаетесь достичь.
Вы хотите внести изменения в плагин. Если вы решите форкнуть Discourse и попытаетесь поддерживать его отдельно, вы будете очень-очень сожалеть об этом, если история чему-то учит.
Какую проблему вы пытаетесь решить, храня пароли в виде хеша MD5? Как уже было предложено, весь интернет, похоже, согласен с тем, что MD5 не является шифрованием и не подходит для хранения паролей.
Требуется помощь в поиске решения. Мне нужно изменить метод шифрования в ROR (Discourse). В настоящее время я использую шифрование MD5. Я внес изменения на уровне кода в локальной среде. Как применить эти изменения на рабочем сервере без использования Docker?
В настоящее время производственная среда настроена с использованием конфигурации Docker.
Вы всё ещё не сказали, какую проблему пытаетесь решить. Можете рассказать подробнее, что именно решает MD5?
Вам всё равно нужно реализовать любые внесённые изменения в виде плагина. Вы уже начали изучать, как работают плагины?
Но, скорее всего, вы на самом деле хотите, чтобы Discourse аутентифицировался через ваше существующее приложение. В этом случае вам достаточно просто реализовать discourse_connect, и Discourse не будет нуждаться в информации о том, как вы храните пароли.