【问题标题】:How can I get a detailed log of django csrf failure?如何获取 django csrf 失败的详细日志?
【发布时间】:2016-11-16 09:37:00
【问题描述】:

我正在对 Django 应用程序进行故障排除。

最近该应用似乎随机产生CSRF验证错误:

CSRF verification failed. Request aborted. (导致 403)

在哪里可以找到有关验证失败原因的详细信息?

【问题讨论】:

  • 不确定您希望日志显示什么。它只会知道 POST 中不存在 CSRF 令牌。
  • 即使存在令牌,也会出现该错误,但不是预期/有效的令牌。有关失败原因的信息将很有用(如果存在)。
  • 请尝试stackoverflow.com/questions/26925244/…。它帮助了我。
  • 你好 Dan,你有没有找到调试 CSRF 错误的好方法?我在使用 AJAX 时遇到了零星的 CSRF 问题,我不知道如何调试它们,因为我无法重现它们。

标签: django csrf django-csrf


【解决方案1】:

您看到的错误出现在客户端 - 默认情况下,除非您设置了 DEBUG = True(您不想在生产中这样做),否则它不会知道您的服务器上出了什么问题。

如果它可以在您的登台服务器上复制,那将很容易修复,因为您可以在登台时使用DEBUG = True 复制错误,并快速查看 Django 的csrf.py 中验证失败的位置。

您要查找的是which of these error is occurring on your server 的输出。

如果您implement logging in Django,您将能够调查并确定哪些错误是在您的生产站点上触发的。像Sentry 这样的服务使这变得更加简单,因为它会在发生错误时向您发送回溯。

【讨论】:

    猜你喜欢
    • 2023-03-19
    • 1970-01-01
    • 2018-10-13
    • 1970-01-01
    • 2016-12-31
    • 2012-10-08
    • 1970-01-01
    • 2013-08-07
    • 2019-07-26
    相关资源
    最近更新 更多