【问题标题】:django https + CSRFdjango https + CSRF
【发布时间】:2016-07-27 06:31:14
【问题描述】:

我正在尝试使用 csrf 保护设置 django 站点工作 ower https。它适用于 nginx 服务器。

nginx 在 https 上工作,我的 django 应用程序成功服务 GET 请求。当我尝试发出发布请求时,它失败了

Forbidden (403)

CSRF verification failed. Request aborted.

CSRF cookie not set.

我设置了

fastcgi_param HTTPS on;

在 settings.py 中

SESSION_COOKIE_SECURE = True
CSRF_COOKIE_SECURE = True

但没有结果。有什么想法吗?

更新! 现在我尝试使用带有 nginx 的 django 应用程序 ower http 并且我有同样的问题,所以 https 没有意义。 如何使用 nginx ower http 启动它并使用 csrf 保护?

更新!和解决方案! ensure_csrf_cookie - 强制发送 csrf 令牌到请求页面的装饰器。 它对我有帮助,因为我的应用程序主要使用不使用标签的 ajax POST 和 GET。

【问题讨论】:

    标签: django https nginx csrf


    【解决方案1】:

    我相信您的 html 模板中需要 csrf 标签,

    <form action="" method="post">{% csrf_token %}
    

    或者你的视图方法上方的装饰器......

    @csrf_protect
    def my_view(request):
    

    在这里阅读:https://docs.djangoproject.com/en/dev/ref/contrib/csrf/

    【讨论】:

    • 感谢您的回答,但我已经这样做了。我的 django 开发服务器工作正常。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-20
    • 1970-01-01
    • 2016-12-14
    • 2014-08-31
    • 2011-08-07
    • 2021-03-25
    • 2013-05-06
    相关资源
    最近更新 更多