【问题标题】:CSRF verification fails after having deployed Django on nginx and waitress在 nginx 和女服务员上部署 Django 后 CSRF 验证失败
【发布时间】:2023-01-16 12:08:08
【问题描述】:

我在 Django 中使用了内置的 CSRF 模块,它在本地主机上工作。在 nginx 和 windows 服务器上的女服务员上部署后,它给了我以下错误:

Forbidden (403)
CSRF verification failed. Request aborted.

Help
Reason given for failure:

    Origin checking failed - https://95.18.243.298 does not match any trusted origins.

在 settings.py 中尝试过这些设置:

CSRF_TRUSTED_ORIGINS = ['95.18.243.298']

SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
USE_X_FORWARDED_HOST = True
USE_X_FORWARDED_PORT = True
CSRF_COOKIE_SECURE = True
SESSION_COOKIE_SECURE = True

认为这可能与实施 HTTPS 有关。 nginx 配置如下所示:

server {
    listen      80;
    server_name DJANGO-WEB; # substitute your machine's IP address or FQDN

    return 301 https://$host$request_uri;

}

server {
    listen       443 ssl;
    server_name  DJANGO-WEB;
    charset      utf-8;

    ssl_certificate      C:/Users/Administrator/Desktop/certifikat.pem;
    ssl_certificate_key  C:/Users/Administrator/Desktop/privateKey.key;

    # max upload size
    client_max_body_size 75M;

    location /static {
        alias C:/Users/Administrator/itavis-web/static;
    }

    location / {
        proxy_pass http://localhost:8080; # See output from runserver.py
        proxy_set_header X-Forwarded-Port $server_port;
        proxy_set_header X-Forwarded-Host $host;
    }
}

希望有人能帮忙。

【问题讨论】:

    标签: python django nginx csrf-token waitress


    【解决方案1】:

    你能解决这个问题吗? 我面临着同样的挑战。

    【讨论】:

      猜你喜欢
      • 2016-11-18
      • 2012-09-08
      • 2015-06-02
      • 1970-01-01
      • 2012-09-24
      • 2017-03-29
      相关资源
      最近更新 更多