[LOW] JWT 载荷含敏感信息 + 缺少安全响应头 #9

Closed
opened 2026-04-30 03:49:01 +08:00 by lan · 0 comments
Owner

问题 1: JWT 载荷含敏感信息

internal/service/auth_service.go 的 JWT 载荷中直接包含用户手机号/邮箱:

claims := jwt.MapClaims{
    "user_id":  user.ID,
    "username": user.Username,
    "phone":    user.Phone,      // 敏感信息
    "email":    user.Email,      // 敏感信息
    "exp":      expirationTime,
}

JWT 载荷仅做 Base64 编码,任何拿到 token 的人都可以解码读取这些字段,无需密钥。

修复建议

  • 移除敏感字段,仅保留 user_idexp
  • 其他信息通过 API 查询获取

问题 2: 缺少安全响应头

internal/middleware/headers.go 设置了基础安全头,但缺失以下头部:

  • Content-Security-Policy — 防止 XSS 注入
  • Referrer-Policy — 控制引荐来源信息泄露
  • Permissions-Policy — 限制浏览器功能访问

修复建议

补充缺失的安全响应头。

严重程度

LOW — 不直接导致可利用漏洞,但违反最小信息原则和纵深防御原则。

## 问题 1: JWT 载荷含敏感信息 `internal/service/auth_service.go` 的 JWT 载荷中直接包含用户手机号/邮箱: ```go claims := jwt.MapClaims{ "user_id": user.ID, "username": user.Username, "phone": user.Phone, // 敏感信息 "email": user.Email, // 敏感信息 "exp": expirationTime, } ``` JWT 载荷仅做 Base64 编码,任何拿到 token 的人都可以解码读取这些字段,无需密钥。 ### 修复建议 - 移除敏感字段,仅保留 `user_id` 和 `exp` - 其他信息通过 API 查询获取 ## 问题 2: 缺少安全响应头 `internal/middleware/headers.go` 设置了基础安全头,但缺失以下头部: - `Content-Security-Policy` — 防止 XSS 注入 - `Referrer-Policy` — 控制引荐来源信息泄露 - `Permissions-Policy` — 限制浏览器功能访问 ### 修复建议 补充缺失的安全响应头。 ## 严重程度 **LOW** — 不直接导致可利用漏洞,但违反最小信息原则和纵深防御原则。
lan closed this issue 2026-04-30 12:23:20 +08:00
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: carrot_bbs/backend#9