自 CSRF Fix / plone.protect 3 以来,时钟服务器不再允许请求查看

Clock server is not allowed to request view anymore since CSRF Fix / plone.protect 3

时钟服务器不再是执行计划任务的推荐方式吗? 任何提示如何解决问题?

您可能会定期调用视图,因此您可以从 plone.protect 文档中了解如何执行读时写入。 您要查找的部分可能是“Marking the entire request as safe”。

通过这种方式,您可以将请求标记为 "safe" 以执行写入。

我的首选方法是使用单独的实例来处理 cron 作业。 我将该实例保留在发布堆栈之外,因此它不会接收来自外部的请求。 出于这个原因,CSRF 对该实例来说不是威胁。 在 "cron instance" 中,您可以安全地将环境变量 PLONE_CSRF_DISABLED 的值设置为 true,而无需担心 CSRF。

在 zeo buildout 中,这转化为类似的东西:

[instance-cron]
recipe = collective.recipe.zope2cluster
<= instance-settings
environment-vars +=
    PLONE_CSRF_DISABLED true