Firebase / React - 防止主机 Header 攻击

Firebase / React - Prevent Host Header attack

我正在努力修复渗透测试中的一些安全漏洞。有问题的漏洞是“Web 服务器易受 HTTP 主机 Header 攻击”,建议为“...主机请求 header 是用户指定的,不应被信任。确保严格的白色列表用于验证主机 header."

我目前正在使用 React.js 作为我的前端框架和 Firebase for Functions (Node.js)、托管、身份验证、存储和分析。从我的一般互联网搜索中,我不明白我应该在哪里或什至改变什么来补救这个漏洞?我收集到我可能在我的服务器调用中使用了使用原始“HOST”变量的代码,但我没有在我的代码中的任何地方看到它被显式访问。我确实有一个 functions.https.onCall() 函数,它可能在内部使用 HOST。显然有很多 onCreate()onUpdate() 等调用。也许这是我在幕后使用的另一个函数或库?

防止主机 header 攻击 Firebase 的解决方案是什么?

Firebase 函数 package.json:

{
  "name": "functions",
  "scripts": {
    "lint": "tslint --project tsconfig.json",
    "build": "tsc",
    "serve": "npm run build && firebase emulators:start --only functions",
    "shell": "npm run build && firebase functions:shell",
    "start": "npm run shell",
    "deploy": "firebase deploy --only functions",
    "logs": "firebase functions:log"
  },
  "engines": {
    "node": "10"
  },
  "main": "lib/index.js",
  "dependencies": {
    "@google-cloud/firestore": "^4.10.0",
    "@sendgrid/mail": "^7.4.7",
    "@types/nodemailer": "^6.4.0",
    "@types/uuid": "^8.3.0",
    "firebase-admin": "^9.5.0",
    "firebase-functions": "^3.16.0",
    "order-id": "^2.1.1",
    "papaparse": "^5.3.0",
    "request": "^2.88.2",
    "uuid": "^8.3.2"
  },
  "devDependencies": {
    "firebase-functions-test": "^0.2.3",
    "tslint": "^5.12.0",
    "typescript": "^3.9.9"
  },
  "private": true
}

如果您使用的是 Firebase 托管,则该报告可能指的是 Host header 用于将请求路由到适当站点的事实。这是按预期工作的——因为 Firebase 托管是一项 multi-tenant 服务,Host header 提供必要的信息来消除站点之间的歧义。

您无需采取任何行动 - Firebase 已经针对已知网站仔细验证了 header。