# 安全与数据边界检查项

## XSS 与危险内容注入

- 未经转义的用户输入直接渲染到 HTML，或通过 `innerHTML`、`dangerouslySetInnerHTML` 注入页面
- 富文本、Markdown、外部模板内容缺少白名单过滤或 sanitizer
- 将不可信字符串拼进样式、URL、脚本片段或事件属性中，存在注入风险

## 凭证与敏感信息

- token、API key、密码、私有地址、测试账号写死在前端代码、配置或示例中
- 将 access token、完整用户信息、敏感响应体直接打印到控制台或埋点日志
- 把长期敏感凭证放入 `localStorage`、`sessionStorage` 或可被脚本随意读取的位置，且没有说明风险

## 权限与数据暴露边界

- 只靠前端开关隐藏按钮或页面，却默认信任客户端的权限判断
- 将仅服务端应知的数据直接下发到前端并持久化缓存
- 路由守卫、菜单显隐、特性开关逻辑不一致，导致越权入口仍可访问

## 外部资源与跳转

- 直接打开、拼接或渲染来自用户输入的 URL，没有校验协议、域名或目标来源
- `postMessage`、iframe 通信或第三方脚本接入没有校验来源
- 新增外链、下载地址或图片资源时，允许任意不可信地址进入关键页面

## 排查思路

审查时依次问自己：

- 用户可控内容最终会不会进入 DOM、样式、URL、日志或本地存储？
- 这个权限判断只是前端展示逻辑，还是被错误地当成真正的安全边界？
- 这次改动有没有把本不该暴露给浏览器的信息带到客户端？
- 如果没有明确代码路径支撑，不作为正式问题输出。
