CSRF(跨站请求伪造)是一种常见的网络攻击方式,Django 默认启用了 CSRF 防护功能。如果您在使用映射的域名访问 Django 管理页面时出现 CSRF 验证失败的问题,可能是由于您的 Nginx 服务没有正确地传递 CSRF token 导致的。
解决方法如下:
在 Django 项目的 settings.py 文件中添加以下配置:- CSRF_TRUSTED_ORIGINS = ['your.domain.com']
复制代码
其中 "your.domain.com" 替换成您的域名。
这个配置将告诉 Django,您的域名是可信的,可以信任您的 Web 服务器传递的 CSRF token。
2. 在 Nginx 或者 Apache 的配置文件中添加以下配置:
- location / {
- proxy_set_header X-Forwarded-Proto $scheme;
- proxy_set_header X-Real-IP $remote_addr;
- proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
- proxy_set_header Host $host;
- proxy_pass http://127.0.0.1:7001;
- proxy_redirect off;
- }
复制代码
其中,proxy_pass 后面的地址应该与您的 Python 项目配置的地址一致。
3. 重启 Nginx,然后尝试通过映射的域名访问 Django 管理页面。
可参考以上操作来解决 CSRF 验证失败的问题。
|