Сельдерей по умолчанию использует рассол в качестве метода его сериализации для задач. Как отмечено в FAQ, это представляет собой дыру в безопасности. Celery позволяет вам настроить, как сериализовать задачи, используя параметр конфигурации CELERY_TASK_SERIALIZER
.
Но это не решает проблему безопасности. Даже если задачи сериализованы с помощью JSON или аналогичных, рабочие все равно будут выполнять задачи, вставленные в очередь с сериализацией pickle - они просто отвечают на параметр content-type
в сообщении. Поэтому любой, кто может писать в очередь задач, может эффективно обрабатывать рабочие процессы, пиши вредоносные маринованные объекты.
Как я могу помешать рабочим потокам запускать задачи, сериализованные с помощью рассола?