FixVibe

// 探测 / 聚焦

CORS 配置错误

宽松的 Access-Control-Allow-Origin 加上凭据,意味着你的 API 是所有人的 API。

概要

CORS is one of the trickiest security controls on the web because it inverts the usual security mental model. Same-origin policy is the browser saying 'no by default'; CORS is the server saying 'yes, but only to these origins.' Configure that 'yes' wrong and the browser gleefully hands attacker-controlled JavaScript the ability to read authenticated API responses. The bug is invisible from your application logs — it lives entirely in response headers — and it's been written into countless tutorials in the form of 'just set Access-Control-Allow-Origin to *' to make the demo work. That demo ships to production more often than anyone wants to admit.

工作原理

CORS issues appear when a site grants browser cross-origin access too broadly, especially with credentials. That can let another origin read data that was meant to stay within the application.

影响范围

Cross-origin authenticated data exfiltration. The victim visits `attacker.tld`. JavaScript on `attacker.tld` issues a `fetch('https://yourapi.com/me', { credentials: 'include' })`. The browser attaches the victim's session cookie. Your API responds with their data. CORS misconfiguration says 'this origin can read it,' so attacker JS reads the body and exfiltrates. The user never knew anything happened. Account data, billing info, message history — anything reachable from a logged-in session is on the table.

// what fixvibe checks

What FixVibe checks

FixVibe checks this class with verified-domain active testing that is bounded, non-destructive, and evidence-driven. Public reports describe the affected surface and remediation. For check-specific questions about exact detection heuristics, active payload details, or source-code rule patterns, contact support@fixvibe.app.

铁壁防御

Maintain an explicit allowlist of trusted origins. The right shape: a `Set<string>` of canonical origins, with an exact-match check before echoing into `Access-Control-Allow-Origin`. The wrong shape: any code path that touches `req.headers.origin` and uses regex. Never combine `Allow-Credentials: true` with a wildcard origin (the spec rejects it but custom middleware sometimes ignores the spec). Reject `Origin: null` outright unless you have a specific cross-origin sandbox use case, in which case audit it carefully. Use the same CORS configuration in dev, staging, and production — drift between environments is where the prod bugs come from. For new APIs, default to no-CORS and add origins one at a time. As a sanity check, attempt a `fetch('https://yourapi.com/me', { credentials: 'include' })` from `https://example.com`'s console — if you can read the response body, you have a finding.

// 在你自己的应用上跑一遍

放心继续发布,FixVibe 持续帮你看守风险。

FixVibe 像攻击者一样对你的应用公开面进行压力测试 —— 无代理、无安装、无信用卡。我们持续研究新的漏洞模式,并把它们转化成实用检查和可直接用于 Cursor、Claude、Copilot 的修复方案。

主动探测
103
本类别中触发的测试
模块
27
专属 主动探测 检查
每次扫描
384+
跨所有类别的测试
  • 免费 —— 无需信用卡,无需安装,无需 Slack 通知
  • 只需粘贴 URL —— 我们爬取、探测、生成报告
  • 按严重程度分级,去重至只剩信号
  • 最新 AI 修复提示词,可直接粘贴到 Cursor、Claude、Copilot
运行免费扫描

// 最新检查 · 实用修复 · 安心发布

CORS 配置错误 — 漏洞聚焦 | FixVibe · FixVibe