Я хочу создать веб-страницу, используя django, которая, при запросе, представляет форму, запрашивающую все виды ввода пользователя, включая пароль пользователя. После отправки должна быть запущена параллельная задача, которая принимает пользовательский ввод в качестве аргументов и выполняет все виды вычислений.
Обратите внимание, что
задача должна быть запущена одновременно , так как вычисления могут занять некоторое время, и я хочу немедленно сообщить пользователю, что его задача была принята - я хочу держать его в курсе о своей задаче в другом виде.
открытый текстовый пароль пользователя является частью аргументов задачи . Так и должно быть, поскольку в расчетах используются операции шифрования, основанные на пароле.
Теперь я бы просто использовал celery и django_celery_results в качестве бэкенда для этой цели (и уже начал его использовать), когда заметил: Whoa ... django_celery_results хранит пароль в виде открытого текста как часть задачи kwargs в базе данных. Это не круто.
Кроме того, весь обмен сообщениями RabbitMQ с открытым паролем кажется мне немного небезопасным после прочтения документации по сельдерею . А кто знает в каких журналах сельдерей пишет пароли.
Подводя итог: сельдерей и другие задачи, кажется, не предназначены для обработки разумной информации в качестве аргументов. Мне просто нужно запустить простую параллельную задачу, обновить ее состояние и сохранить результат в базе данных. Я хочу остаться чисто в Python3 и Django. Любые рекомендации?
Edit:
- Я не хочу использовать для этого javascript. Я хочу использовать проверку формы на стороне сервера и запустить там асинхронную задачу.
- Применение функций сокращения, хеш-функций или любых других преобразований к паролю пользователя не решает проблему. Что бы я ни поставлял в свою очередь задач, оно должно быть достаточным для выполнения операций шифрования / дешифрования и поэтому очень разумно.
- Я ищу решение, в котором открытый текст хранится только в памяти