Files
TARE-Learn/slidev/pages/day2/m5-security-rules.md
T
smart 67837df8d0 docs: 更新TRA编程培训课程材料、课件与AI技能交付包
- 新增全套考试卷、评估卷、参考答案与考试培训包模板
- 修正slidev培训课件:调整模块标题、链路图缩放,替换工单示例为通用业务对象
- 修正课堂红线表述为证据红线,将小组作业调整为个人作业要求
- 新增权限、状态流转、审计日志、看板指标四类可复用业务规则块
- 整理AI工程技能交付包,迁移旧资产至客户专属交付包并统一术语
- 新增考试输出模板与TRAE使用记录文档
2026-08-08 11:00:36 +08:00

119 lines
4.3 KiB
Markdown

# 模块 5:若依安全规则重点
<div class="mt-6 text-sm">
账号密码 · Token · 接口权限注解 · 菜单与按钮权限 · 数据权限 · 操作日志 · 敏感配置 · 日志脱敏 · 导入导出
</div>
<!--
若依安全规则和一般前端项目不完全一样。
它必须重点关注账号密码、token、接口权限注解、菜单与按钮权限、数据权限、操作日志、敏感配置、日志脱敏。
尤其是权限与日志,是后台管理系统的核心。
-->
---
# 安全规则写法
<div class="mt-5 text-sm">
| 规则组成 | 写法 | 示例 |
|---|---|---|
| 触发场景 | 哪类文件/功能/接口触发 | 用户、角色、菜单、部门、岗位 |
| 必须动作 | AI 必须检查或执行什么 | 检查 Controller 权限注解 |
| 禁止动作 | AI 不能偷懒或绕过什么 | 不能只做前端按钮隐藏 |
| 验收方式 | 怎么确认规则被遵守 | 文件路径、注解、无权限测试 |
</div>
<!--
规则不能只写“注意安全”。
可执行规则至少要包含触发场景、必须动作、禁止动作和验收方式。
这样 TRAE 才知道什么时候触发规则、要做什么、不能做什么,以及输出要证明什么。
-->
---
# 安全规则示例
<div class="mt-4 space-y-3 text-sm">
<div class="p-3 rounded-lg bg-blue-900/20 border border-blue-500/30">前端按钮权限只能作为交互控制,不能作为安全边界</div>
<div class="p-3 rounded-lg bg-blue-900/20 border border-blue-500/30">涉及用户、角色、菜单、部门、岗位等敏感接口时,必须检查后端 Controller 是否存在权限控制</div>
<div class="p-3 rounded-lg bg-blue-900/20 border border-blue-500/30">涉及新增、修改、删除、导出等操作时,必须检查是否记录操作日志</div>
</div>
<!--
这些规则可以直接写进 .trae/rules.md。
第一,前端按钮权限只能作为交互控制,不能作为安全边界。
第二,涉及用户、角色、菜单、部门、岗位等敏感接口时,必须检查后端 Controller 是否存在权限控制。
第三,涉及新增、修改、删除、导出等操作时,必须检查是否记录操作日志。
这些规则非常适合若依。
-->
---
# 权限与日志 rules 片段
<div class="mt-4 p-4 rounded-xl bg-emerald-500/10 border border-emerald-500/30 text-sm">
```md
## 权限与审计规则
- 涉及用户、角色、菜单、部门、岗位的新增、修改、删除、导出接口时,
必须检查后端 Controller 是否有权限控制,不能只依赖前端按钮权限。
- 涉及新增、修改、删除、导入、导出等敏感操作时,
必须检查是否记录操作日志,并说明日志注解或 AOP 依据。
- 如果当前上下文无法确认权限或日志实现,必须标注“不确定”,
并请求补充 Controller、Service、权限配置或日志切面相关文件。
```
</div>
<!--
这段可以直接作为 .trae/rules.md 的雏形。
它比“注意权限安全”更好,因为它规定了触发场景、必须检查的对象、不能依赖的东西,以及上下文不足时怎么处理。
-->
---
# 敏感配置规则
<div class="mt-6 text-sm">
- 禁止在源码中硬编码数据库密码、Redis 密码、JWT 密钥、第三方密钥
- 不得提交真实 application-dev.yml、.env、本地配置文件
- 示例配置必须使用占位符
</div>
<!--
若依项目通常有后端配置文件,所以敏感配置规则也很重要。
禁止在源码中硬编码数据库密码、Redis 密码、JWT 密钥、第三方密钥。
不得提交真实 application-dev.yml、.env、本地配置文件。
示例配置必须使用占位符。
-->
---
# 安全规则验证
<div class="mt-5 text-sm">
| 个人任务 | 产出 |
|---|---|
| 选择一个敏感动作 | 删除用户、导出用户、重置密码任选一个 |
| 用上下文包提问 | 要求 TRAE 先收集证据,不改代码 |
| 抽取安全规则 | 写出 3 条可执行 rules |
| 设计验证步骤 | 正常账号、无权限账号、日志检查各 1 条 |
</div>
<div class="mt-4 p-3 rounded-xl bg-amber-500/10 border border-amber-500/30 text-sm">
验收:规则必须能回答“什么时候触发、检查哪里、怎么证明、证据不足怎么办”。
</div>
<!--
这个练习把安全规则从讲师示例变成学员产出。
每位学员选择一个敏感动作,先做证据收集,再抽取规则,最后写验证步骤。
-->