在django中使用任务队列而不会泄漏kwargs

时间:2019-05-21 19:07:37

标签: django task celery django-celery task-queue

我想使用django创建一个网页,当被请求时,该网页将显示一个表格,要求所有类型的用户输入,包括用户密码。提交后,应启动并发任务,该任务将用户输入作为参数并进行各种计算。

请注意

  1. 任务必须同时启动,因为计算可能要花一些时间,我想立即通知用户他的任务已被接受-我想让他及时完成任务换个角度来看他的任务。

  2. 纯文本用户密码是任务参数的一部分。必须如此,因为计算涉及依赖密码的加密操作。

现在,当我注意到时,我将使用celery和django_celery_results作为该目标的结果后端(并且已经开始使用它):哇... django_celery_results将明文密码存储为数据库中任务kwarg的一部分。那不酷。 在阅读celery security documentation之后,纯文本密码的整个RabbitMQ消息传递对我来说似乎也不安全。谁知道芹菜在哪个日志中写密码。

总而言之:芹菜和其他任务队列似乎并不旨在将敏感信息作为参数来处理。我真的只需要启动一个简单的并发任务,更新其状态并将其结果存储在数据库中即可。我想纯粹留在python3和django中。有什么建议吗?

编辑:

  • 我不想为此使用javascript。我想使用服务器端表单验证并在那里启动异步任务。
  • 对用户密码应用归约函数,哈希函数或任何其他转换不能解决问题。无论我提供什么任务队列,都需要足以执行加密/解密操作,因此非常明智。
  • 我正在寻找一种仅将明文密码存储在内存中的解决方案

0 个答案:

没有答案