## 安全配置错误（Medium）

### 触发信号

- CORS 配置为 `*` 或允许任意 Origin（`Access-Control-Allow-Origin: *`）
- 缺少安全响应头配置（`X-Frame-Options`、`Content-Security-Policy`、`Strict-Transport-Security`）
- 敏感接口无限流或限流过于宽松
- 调试模式在代码中硬编码开启（`debug = True`、`NODE_ENV !== 'production'`）

### 关键检查点

| 配置类型 | 检查点 |
|---------|--------|
| CORS | `Access-Control-Allow-Origin` 是否为 `*` 或动态反射未校验白名单 |
| 安全响应头 | 缺少 `X-Frame-Options`、`X-Content-Type-Options`、`CSP`、`HSTS` |
| 限流 | 登录接口、短信接口、支付接口是否有 rate limit |
| 调试模式 | 生产代码中 `debug=True`/`app.debug = True`/`showDetailedErrors = true` |
| Cookie 安全 | 缺少 `HttpOnly`/`Secure`/`SameSite` 标记 |
| HTTP 方法 | 未禁用不必要的 HTTP 方法（DELETE、PUT、TRACE） |

### 判定流程

1. **检查 CORS 配置**：`Grep` 搜索 `cors`、`Access-Control-Allow-Origin`，`Read` 确认：
   - 是否为 `*`（允许任意域名跨域访问）
   - 是否动态反射 `req.headers.origin` 而未校验白名单
   - 是否允许携带凭证（`Access-Control-Allow-Credentials: true`）且 Origin 为 `*`（不允许同时存在）
2. **检查安全响应头**：`Read` 确认是否配置了以下安全头：
   - `X-Frame-Options: DENY|SAMEORIGIN`（防止点击劫持）
   - `X-Content-Type-Options: nosniff`（防止 MIME 嗅探）
   - `Content-Security-Policy`（限制资源加载来源）
   - `Strict-Transport-Security`（强制 HTTPS）
3. **检查限流配置**：`Grep` 搜索 `rateLimit`、`throttle`、`limiter`，`Read` 确认敏感接口是否有合理限流：
   - 登录接口（防暴力破解）
   - 短信/邮件接口（防滥发）
   - 支付/下单接口（防刷单）
4. **检查调试模式**：`Read` 确认是否在非测试文件中硬编码了调试模式开启

### 证据构造

确认缺陷后，输出需包含：
- 配置位置（CORS/安全头/限流/调试模式配置，含文件:行号）
- 当前配置值（如 `Origin: *`、无 HSTS）
- 推荐的安全配置（白名单域名、安全头列表、合理限流阈值）
- 业务影响（跨域攻击、点击劫持、暴力破解、信息泄露）

### 排除

- 开发环境专用配置（`config.dev.js`/`application-dev.yml`）
- 已使用 Helmet/secure-headers 等安全中间件（自动添加安全头）
- API 网关层已统一处理限流和安全头
- 内部服务间调用（无浏览器端跨域风险）
