酸洗/去除查询是否安全?

时间:2016-05-10 08:00:41

标签: django celery sql-injection

我有一个Celery任务,它接受从Table数据构建的查询作为参数:

    query = self.data.data.query
    response = ExportTableTask.delay_or_fail(query=query)

在Celery任务中,我将查询重新添加到查询集中以复制结果:

def task(query):
    data = Model.objects.all()
    data.query = query

我担心的是,这次传输的pickle查询是否安全,以及是否在重新添加到查询集时进一步清理。

或者,如果有人获得了对任务代理的访问权限,他们是否能够注入他们喜欢的任何SQL?

1 个答案:

答案 0 :(得分:0)

你可以在django doc上描述如何正确地进行腌制。

如果有人可以访问他可以获得乐趣的消息,则pickle只是对象的二进制表示,它足以以您期望的格式生成有效的查询对象,并且可以做很多损失。

但是,应使用TSL保护代理,并使用强密码创建用户以避免注入消息。 另一种方法是将经纪人与芹菜工人一起置于一个孤立的网络中,安全而快速。