You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django HTTPS环境下DEBUG=False时CSRF验证失败(403)求助

解决HTTPS环境下DEBUG=False时的CSRF验证失败问题

以下是针对该问题的具体解决方法:

  • 开启CSRF Cookie的Secure属性
    生产环境(DEBUG=False)下,HTTPS连接要求CSRF Cookie仅通过安全传输通道发送,需在Django配置中添加:

    CSRF_COOKIE_SECURE = True
    
  • 配置CSRF信任源
    明确指定Django信任的HTTPS域名,避免跨域验证失败,配置示例:

    CSRF_TRUSTED_ORIGINS = ['https://your-domain.com']  # 替换为实际域名,支持通配符如*.your-domain.com
    
  • 设置Session Cookie的Secure属性
    同步确保会话Cookie仅通过HTTPS传输,添加配置:

    SESSION_COOKIE_SECURE = True
    
  • 修复反向代理的协议头传递
    若使用Nginx等反向代理,需确保代理正确传递HTTPS协议标识,Nginx配置示例:

    proxy_set_header X-Forwarded-Proto $scheme;
    

    同时在Django配置中启用对应识别:

    SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
    
  • 验证模板中CSRF Token的位置
    确认{% csrf_token %}在<form>标签内部,且表单使用POST方法,未被JS错误修改表单数据或请求头。


内容的提问来源于stack exchange,提问作者Corgi coding

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 01:09:28