# Feature Spec: 用户文字输入合规校验 > Status: `Active` · Map: `横切 · 安全/合规` · Phase: `P2` > 关联:[lexicon.md](../lexicon.md) · [.ai/security.md](../../security.md) · account-auth / profile / ask / companion --- ## 1. 功能定义 | 字段 | 内容 | |---|---| | Name | 文字输入合规(Text Compliance) | | Purpose | 所有用户提交的**自由文字**在服务端统一做合法性/合规校验;前端可做即时提示,**以后端拒绝为准** | | Business Goal | 降低 XSS/注入、恐吓与医疗疗效话术、垃圾刷屏进入 DB 与模型上下文的风险 | | In | Out | |---|---| | 昵称 · 档案显示名 · 问答 content · 心情/打卡 note · 成长计划 title/focus · 邀请 display_name · 意象场景自填 | 纯数字字段(生日年月日、分数、经纬度) | | 长度 · 格式清洗 · XSS/控制字符 · lexicon 硬禁止 · 简易刷屏特征 | 完整内容审核平台 / 人工审 / 语音 | | 错误码统一 | 改开放登录策略本身 | --- ## 2. 用户价值 1. 避免有害/违规文案入库与进模型。 2. 提交失败时得到可读中文原因。 3. N/A(安全横切,非付费面)。 --- ## 3. 用户角色 Visitor / User / Admin 凡提交自由文字均适用(Admin 运营文案可后续加强;本 Spec **先 C 端用户 API**)。 --- ## 4. 用户流程 ```text 用户输入文字 →(可选)前端即时校验 → API Handler/Service 调用 textsafe.Check(kind, text) → OK:规范化后入库/进模型 → 拒绝:HTTP 400 · code 40060 · message 可读原因 ``` --- ## 5–6. 页面 / 状态 各既有表单;Error 态展示 `message`。无新页面。 --- ## 7. Business Rules | ID | Rule | |---|---| | R1 | **后端必须校验**所有用户自由文字;前端校验不得替代后端 | | R2 | 种类与上限(rune):`nickname` 1–16;`display_name` 1–24;`ask_content` 1–2000;`note` 0–200;`title` 1–40;`focus` 0–40;`scene` 1–80 | | R3 | 拒绝控制字符(允许消息内 `\n` `\t`);拒绝 HTML/脚本片段(如 `