feat(day2): 更新课件

This commit is contained in:
smart
2026-06-12 18:25:01 +08:00
parent bbe619d386
commit 4e1829fa08
12 changed files with 762 additions and 17 deletions
+71 -2
View File
@@ -2,7 +2,7 @@
<div class="mt-6 text-sm">
账号密码 · Token · 接口权限注解 · 菜单与按钮权限 · 数据权限 · 操作日志 · 敏感配置 · 日志脱敏
账号密码 · Token · 接口权限注解 · 菜单与按钮权限 · 数据权限 · 操作日志 · 敏感配置 · 日志脱敏 · 导入导出
</div>
@@ -14,7 +14,28 @@
---
# 中文安全规则示例
# 安全规则写法
<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>
@@ -32,6 +53,30 @@
---
# 权限与日志 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">
@@ -47,3 +92,27 @@
不得提交真实 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>
<!--
这个练习把安全规则从讲师示例变成学员产出。
每组选择一个敏感动作,先做证据收集,再抽取规则,最后写验证步骤。
-->