【发布时间】:2016-08-12 13:28:21
【问题描述】:
我使用 django + celery + python + djcelery + Flower 进行开发。在django看来。我做了类似的事情:
def handle(req):
task_name.apply_async(args=(req.POST['username'], req.POST['password'], 'p1', 'p2'), queue='x')
一切正常。
但是当我检查芹菜花时,我发现用户名/密码在那里。当我在 django admin 中检查 djcelery 时,用户名/密码也在那里。
所以我的问题是:
- 我们能不能把参数只放在内存中,让别人看不到 他们?
- 我想清除现有的任务日志,可以吗?
更新:
我认为 args 是由 djcelery 捕获的,因为我发现这些数据存储在 djcelery_taskstate 中。
更新:
- Djcelery 使用 celerycam 捕获这些信息并将它们存储在后端并在 django admin 中显示。
- 花,我认为,使用一些类似的方法来捕获这些信息并在花页中显示它们。但是下面的方法可以防止花捕获一些敏感数据。 http://flower.readthedocs.org/en/latest/config.html#format-task
- 我仍然没有找到禁用 celerycam 捕获这些数据的方法..
更新:
最后,我用 mysql 触发器修复了 celerycam。每当它将密码存储到数据库中时,我都会使用触发器来擦除密码
谢谢
【问题讨论】:
标签: python django passwords celery djcelery