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

Flask CSRF防护报错‘The referrer does not match the host’的原因排查及解决咨询

Flask CSRF防护报错‘The referrer does not match the host’的原因排查及解决咨询

我们团队在Flask框架上运行Python应用,按照官方指导给所有POST表单都配置了CSRF令牌,但只要通过代理服务器访问,就一直弹出400 Bad Request: The referrer does not match the host的错误;但绕过代理直接访问时,CSRF令牌就能正常工作,完全没问题。

我们特意调试了Flask的csrf.py模块,找到了问题的核心差异:

  • 走代理服务器时,系统判定的「合法来源(Good referrer)」是一个IP地址,而实际的「请求来源(Request referrer)」是完整的域名URL
  • 绕过代理时,这两个来源完全匹配,都是完整的域名

另外我们确认了这个代理服务器并没有连接域名服务器,我实在想不通它是怎么把完整域名转换成IP地址的……

现在的问题是,自从启用CSRF防护后,我们很多应用在走代理的环境下都因为这个报错无法正常运行。有没有大佬能解释下这个域名转IP的机制?或者给我们一些解决思路、临时的 workaround 也行,万分感谢!

备注:内容来源于stack exchange,提问作者Bob

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.14 15:08:00