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

NodeJS/Google Cloud Function出现CSRF-verification failed问题排查

问题解答

1. CSRF验证失败的可能原因

  • Referer不匹配API白名单:Billogram的API大概率维护了允许的Referer域名列表,你手动设置的http://localhost:3000/可能不在列表内;Google Cloud Function(GCF)作为服务端发起请求时,默认无Referer头,强行设置的localhost值同样不被服务器认可。
  • 缺少CSRF令牌:部分API的CSRF验证不仅依赖Referer,还要求请求携带服务器生成的CSRF令牌(通常在Cookie或请求头中),你仅配置Basic Auth和Referer,未处理令牌逻辑会触发验证失败。
  • 请求格式不符合要求:比如POST请求未正确设置Content-Type(如application/json),或者请求参数结构不符合API规范,导致服务器的CSRF校验逻辑异常触发。
  • 请求头传递异常:GCF环境中,请求可能经过代理层,手动设置的Referer头被篡改或丢失,无法正确到达Billogram服务器。

2. 获取本地及GCF环境的正确Referer值

本地环境

  • 前端浏览器发起请求:无需手动设置Referer,浏览器会自动生成当前页面的完整URL(如http://localhost:3000/invoices),直接使用浏览器自动携带的Referer即可。同时需要在Billogram后台的权限配置中,将http://localhost:3000添加到允许的Referer白名单。
  • 本地后端服务调用:若为服务端到服务端请求,先查看Billogram API文档确认是否强制要求Referer。如果允许,可使用已在Billogram后台备案的测试域名;若不强制,可尝试移除Referer头,仅保留Basic Auth。

Google Cloud Function环境

  • 服务端到服务端请求:首先确认Billogram API是否允许服务端调用跳过Referer校验。若必须设置,需使用你在Billogram后台备案的生产业务域名(如https://your-domain.com)作为Referer值。
  • 检查请求头传递:在GCF中发起axios请求时,确保Referer头被正确设置且未被GCF的网络层或代理篡改,可通过打印请求头日志确认实际发送的Referer值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 23:25:17