diff --git a/README.md b/README.md
index 71edca4..41116df 100644
--- a/README.md
+++ b/README.md
@@ -8,7 +8,7 @@
-[](https://github.com/lintsinghua/DeepAudit/releases)
+[](https://github.com/lintsinghua/DeepAudit/releases)
[](https://opensource.org/licenses/MIT)
[](https://reactjs.org/)
[](https://www.typescriptlang.org/)
@@ -115,6 +115,8 @@ docker-compose up -d
- **即时分析** — 代码片段秒级分析,10+ 编程语言全覆盖
- **智能审计** — Bug、安全、性能、风格、可维护性五维检测
- **可解释分析** — What-Why-How 模式,精准定位 + 修复建议
+- **自定义规则** — 内置 OWASP Top 10 等规则集,支持自定义审计规则
+- **提示词管理** — 可视化管理审计提示词模板,支持中英文双语
- **可视化报告** — 质量仪表盘、趋势分析、PDF/JSON 导出
- **灵活配置** — 浏览器运行时配置,无需重启服务
@@ -135,7 +137,6 @@ docker-compose up -d
- **多 Agent 协作** — 多智能体架构,模拟真实的安全团队工作流程
- **自动生成补丁** — 光说哪里有问题不够,还得能自动生成能用的修复代码
- **混合分析** — AI 分析完再用传统 SAST 工具验证一遍,两边互相补充,减少误报漏报
-- **自定义规则** — 支持用配置文件定义自己团队的编码规范
- **跨文件分析** — 做代码知识图谱,理解模块间的调用关系
- **多仓库支持** — 除Github/GitLab以外,更新支持Gitea等更多平台以及自建仓库
diff --git a/backend/pyproject.toml b/backend/pyproject.toml
index e967e4b..cf27cd8 100644
--- a/backend/pyproject.toml
+++ b/backend/pyproject.toml
@@ -1,6 +1,6 @@
[project]
name = "deepaudit-backend"
-version = "0.1.0"
+version = "2.0.0-beta.7"
description = "DeepAudit Backend API"
requires-python = ">=3.13"
dependencies = [
diff --git a/docs/CONFIGURATION.md b/docs/CONFIGURATION.md
index 9afdea9..f022959 100644
--- a/docs/CONFIGURATION.md
+++ b/docs/CONFIGURATION.md
@@ -291,6 +291,441 @@ LLM_MODEL=gpt-4o-mini
---
+## 审计规则配置
+
+DeepAudit 支持自定义审计规则集,可以根据团队需求定制检测规则。
+
+### 访问方式
+
+1. 登录系统后,访问 `/audit-rules` 审计规则页面
+2. 或点击侧边栏的"审计规则"菜单
+
+### 内置规则集
+
+#### 1. OWASP Top 10(默认)
+
+基于 OWASP Top 10 2021 的安全审计规则集,包含 10 条规则:
+
+| 规则代码 | 名称 | 严重程度 | 检测提示词 |
+|----------|------|----------|------------|
+| A01 | 访问控制失效 | Critical | 检查是否存在访问控制失效问题:权限检查缺失、越权访问、IDOR(不安全的直接对象引用)、CORS配置错误 |
+| A02 | 加密机制失效 | Critical | 检查是否存在加密问题:使用弱加密算法(MD5/SHA1/DES)、明文存储密码、硬编码密钥、不安全的随机数生成 |
+| A03 | 注入攻击 | Critical | 检查是否存在注入漏洞:SQL注入、命令注入、LDAP注入、XPath注入、NoSQL注入、表达式语言注入 |
+| A04 | 不安全设计 | High | 检查是否存在不安全的设计:缺少速率限制、业务逻辑漏洞、缺少输入验证、信任边界不清 |
+| A05 | 安全配置错误 | High | 检查是否存在安全配置错误:默认凭证、不必要的功能启用、详细错误信息泄露、缺少安全头 |
+| A06 | 易受攻击的组件 | High | 检查是否使用了已知漏洞的组件:过时的依赖库、未修补的漏洞、不安全的第三方组件 |
+| A07 | 身份认证失效 | Critical | 检查是否存在身份认证问题:弱密码策略、会话固定、凭证明文存储、缺少多因素认证 |
+| A08 | 数据完整性失效 | Critical | 检查是否存在完整性问题:不安全的反序列化、未验证的更新、CI/CD管道安全 |
+| A09 | 日志监控失效 | Medium | 检查是否存在日志监控问题:缺少安全日志、敏感信息记录到日志、缺少告警机制 |
+| A10 | SSRF | High | 检查是否存在SSRF漏洞:未验证的URL输入、内网资源访问、云元数据访问 |
+
+#### 2. 代码质量规则
+
+通用代码质量检查规则集,包含 8 条规则:
+
+| 规则代码 | 名称 | 严重程度 | 检测提示词 |
+|----------|------|----------|------------|
+| CQ001 | 函数过长 | Medium | 检查函数是否过长(超过50行),是否应该拆分为更小的函数 |
+| CQ002 | 重复代码 | Medium | 检查是否存在重复的代码块,可以提取为公共函数或类 |
+| CQ003 | 嵌套过深 | Low | 检查代码嵌套是否过深(超过4层),影响可读性 |
+| CQ004 | 魔法数字 | Low | 检查是否存在魔法数字或魔法字符串,应该定义为常量 |
+| CQ005 | 缺少错误处理 | High | 检查是否缺少必要的错误处理,可能导致程序崩溃 |
+| CQ006 | 未使用的变量 | Low | 检查是否存在声明但未使用的变量 |
+| CQ007 | 命名不规范 | Low | 检查命名是否符合语言规范和最佳实践 |
+| CQ008 | 注释缺失 | Low | 检查复杂逻辑是否缺少必要的注释说明 |
+
+#### 3. 性能优化规则
+
+性能问题检测规则集,包含 5 条规则:
+
+| 规则代码 | 名称 | 严重程度 | 检测提示词 |
+|----------|------|----------|------------|
+| PERF001 | N+1查询 | High | 检查是否存在N+1查询问题,在循环中执行数据库查询 |
+| PERF002 | 内存泄漏 | Critical | 检查是否存在内存泄漏:未关闭的资源、循环引用、大对象未释放 |
+| PERF003 | 低效算法 | Medium | 检查是否存在低效算法,如O(n²)可优化为O(n)或O(nlogn) |
+| PERF004 | 不必要的对象创建 | Medium | 检查是否在循环中创建不必要的对象,应该移到循环外 |
+| PERF005 | 同步阻塞 | Medium | 检查是否存在同步阻塞操作,应该使用异步方式 |
+
+### 自定义规则集
+
+可以创建自定义规则集,每条规则包含:
+
+- **规则代码**: 唯一标识符(如 SEC001)
+- **规则名称**: 规则的简短描述
+- **规则描述**: 详细说明
+- **类别**: security / bug / performance / style / maintainability
+- **严重程度**: critical / high / medium / low
+- **自定义提示词**: 增强 LLM 检测的提示词(关键字段)
+- **修复建议**: 问题修复模板
+- **参考链接**: CWE/OWASP 等参考资料
+
+### 规则集导入/导出
+
+支持 JSON 格式的规则集导入导出,方便团队共享:
+
+```json
+{
+ "name": "自定义安全规则",
+ "description": "团队自定义的安全检测规则",
+ "language": "all",
+ "rule_type": "security",
+ "rules": [
+ {
+ "rule_code": "CUSTOM001",
+ "name": "敏感信息硬编码",
+ "description": "检测代码中硬编码的敏感信息",
+ "category": "security",
+ "severity": "critical",
+ "custom_prompt": "检查是否存在硬编码的密码、API Key、Token、私钥等敏感信息",
+ "fix_suggestion": "使用环境变量或配置文件存储敏感信息"
+ }
+ ]
+}
+```
+
+---
+
+## 提示词模板配置
+
+DeepAudit 支持自定义审计提示词模板,可以针对不同场景优化分析效果。
+
+### 访问方式
+
+1. 登录系统后,访问 `/prompts` 提示词管理页面
+2. 或点击侧边栏的"提示词管理"菜单
+
+### 内置模板
+
+#### 1. 默认代码审计(默认)
+
+全面的代码审计提示词,涵盖安全、性能、代码质量等多个维度:
+
+```
+你是一个专业的代码审计助手。请从以下维度全面分析代码:
+- 安全漏洞(SQL注入、XSS、命令注入、路径遍历、SSRF、XXE、反序列化、硬编码密钥等)
+- 潜在的 Bug 和逻辑错误
+- 性能问题和优化建议
+- 编码规范和代码风格
+- 可维护性和可读性
+- 最佳实践和设计模式
+
+请尽可能多地找出代码中的所有问题,不要遗漏任何安全漏洞或潜在风险!
+```
+
+#### 2. 安全专项审计
+
+专注于安全漏洞检测的提示词模板:
+
+```
+你是一个专业的安全审计专家。请专注于检测以下安全问题:
+
+【注入类漏洞】
+- SQL注入(包括盲注、时间盲注、联合查询注入)
+- 命令注入(OS命令执行)
+- LDAP注入、XPath注入、NoSQL注入
+
+【跨站脚本(XSS)】
+- 反射型XSS、存储型XSS、DOM型XSS
+
+【认证与授权】
+- 硬编码凭证、弱密码策略、会话管理问题、权限绕过
+
+【敏感数据】
+- 敏感信息泄露、不安全的加密、明文传输敏感数据
+
+【其他安全问题】
+- SSRF、XXE、反序列化漏洞、路径遍历、文件上传漏洞、CSRF
+
+请详细说明每个漏洞的风险等级、利用方式和修复建议。
+```
+
+#### 3. 性能优化审计
+
+专注于性能问题检测的提示词模板:
+
+```
+你是一个专业的性能优化专家。请专注于检测以下性能问题:
+
+【数据库性能】
+- N+1查询问题、缺少索引、不必要的全表扫描、大量数据一次性加载、未使用连接池
+
+【内存问题】
+- 内存泄漏、大对象未及时释放、缓存使用不当、循环中创建大量对象
+
+【算法效率】
+- 时间复杂度过高、不必要的重复计算、可优化的循环、递归深度过大
+
+【并发问题】
+- 线程安全问题、死锁风险、资源竞争、不必要的同步
+
+【I/O性能】
+- 同步阻塞I/O、未使用缓冲、频繁的小文件操作、网络请求未优化
+
+请提供具体的优化建议和预期的性能提升。
+```
+
+#### 4. 代码质量审计
+
+专注于代码质量和可维护性的提示词模板:
+
+```
+你是一个专业的代码质量审计专家。请专注于检测以下代码质量问题:
+
+【代码规范】
+- 命名不规范(变量、函数、类)、代码格式不一致、注释缺失或过时、魔法数字/字符串
+
+【代码结构】
+- 函数过长(超过50行)、类职责不单一、嵌套层级过深、重复代码
+
+【可维护性】
+- 高耦合低内聚、缺少错误处理、硬编码配置、缺少日志记录
+
+【设计模式】
+- 违反SOLID原则、可使用设计模式优化的场景、过度设计
+
+【测试相关】
+- 难以测试的代码、缺少边界条件处理、依赖注入问题
+
+请提供具体的重构建议和代码示例。
+```
+
+### 自定义模板
+
+可以创建自定义提示词模板:
+
+- **模板名称**: 模板的简短名称
+- **模板描述**: 模板用途说明
+- **中文提示词**: 中文版本的系统提示词
+- **英文提示词**: 英文版本的系统提示词
+- **模板变量**: 可在提示词中使用的变量
+
+### 提示词测试
+
+在创建或编辑模板时,可以使用"测试"功能验证提示词效果:
+
+1. 选择测试代码语言(支持 Python、JavaScript、Java、Go、Swift、Kotlin 等)
+2. 输入测试代码片段(或使用内置示例代码)
+3. 选择输出语言(中文/英文)
+4. 点击"测试"按钮查看分析结果
+
+### 在审计任务中使用
+
+创建审计任务时,可以选择:
+
+1. **规则集**: 选择要应用的审计规则集
+2. **提示词模板**: 选择要使用的提示词模板
+
+---
+
+## 提示词架构详解
+
+本节详细说明 DeepAudit 如何构建发送给 LLM 的完整提示词。
+
+### 提示词组成结构
+
+发送给 LLM 的提示词由以下部分组成:
+
+```
+┌─────────────────────────────────────────────────────────────┐
+│ System Prompt (系统提示词) │
+├─────────────────────────────────────────────────────────────┤
+│ ① 提示词模板内容 (来自数据库或默认模板) │
+│ - 定义 AI 的角色和任务 │
+│ - 指定分析维度和重点 │
+├─────────────────────────────────────────────────────────────┤
+│ ② 输出格式要求 │
+│ - JSON Schema 定义 │
+│ - 字段说明和约束 │
+├─────────────────────────────────────────────────────────────┤
+│ ③ 审计规则 (如果选择了规则集) │
+│ - 规则代码、名称、描述 │
+│ - 每条规则的检测提示词 │
+└─────────────────────────────────────────────────────────────┘
+
+┌─────────────────────────────────────────────────────────────┐
+│ User Prompt (用户提示词) │
+├─────────────────────────────────────────────────────────────┤
+│ ④ 编程语言 │
+│ ⑤ 带行号的代码内容 │
+└─────────────────────────────────────────────────────────────┘
+```
+
+### 完整系统提示词示例(中文版)
+
+以下是使用默认模板 + OWASP Top 10 规则集时,发送给 LLM 的完整系统提示词:
+
+```
+你是一个专业的代码审计助手。请从以下维度全面分析代码:
+- 安全漏洞(SQL注入、XSS、命令注入、路径遍历、SSRF、XXE、反序列化、硬编码密钥等)
+- 潜在的 Bug 和逻辑错误
+- 性能问题和优化建议
+- 编码规范和代码风格
+- 可维护性和可读性
+- 最佳实践和设计模式
+
+请尽可能多地找出代码中的所有问题,不要遗漏任何安全漏洞或潜在风险!
+
+【输出格式要求】
+1. 必须只输出纯JSON对象
+2. 禁止在JSON前后添加任何文字、说明、markdown标记
+3. 所有文本字段(title, description, suggestion等)必须使用中文输出
+4. 输出格式必须符合以下 JSON Schema:
+
+{
+ "issues": [
+ {
+ "type": "security|bug|performance|style|maintainability",
+ "severity": "critical|high|medium|low",
+ "title": "string",
+ "description": "string",
+ "suggestion": "string",
+ "line": 1,
+ "column": 1,
+ "code_snippet": "string",
+ "rule_code": "string (optional, if matched a specific rule)"
+ }
+ ],
+ "quality_score": 0-100,
+ "summary": {
+ "total_issues": number,
+ "critical_issues": number,
+ "high_issues": number,
+ "medium_issues": number,
+ "low_issues": number
+ }
+}
+
+【审计规则】请特别关注以下规则:
+- [A01] 访问控制失效: 检测权限绕过、越权访问、IDOR等访问控制问题
+ 检测要点: 检查是否存在访问控制失效问题:权限检查缺失、越权访问、IDOR(不安全的直接对象引用)、CORS配置错误
+- [A02] 加密机制失效: 检测弱加密、明文传输、密钥管理不当等问题
+ 检测要点: 检查是否存在加密问题:使用弱加密算法(MD5/SHA1/DES)、明文存储密码、硬编码密钥、不安全的随机数生成
+- [A03] 注入攻击: 检测SQL注入、命令注入、LDAP注入等注入漏洞
+ 检测要点: 检查是否存在注入漏洞:SQL注入、命令注入、LDAP注入、XPath注入、NoSQL注入、表达式语言注入
+... (其他规则)
+```
+
+### 用户提示词示例
+
+```
+编程语言: Python
+
+代码已标注行号(格式:行号| 代码内容),请根据行号准确填写 line 字段。
+
+请分析以下代码:
+
+1| import sqlite3
+2|
+3| def get_user(user_id):
+4| conn = sqlite3.connect('users.db')
+5| cursor = conn.cursor()
+6| query = f"SELECT * FROM users WHERE id = {user_id}"
+7| cursor.execute(query)
+8| return cursor.fetchone()
+```
+
+### 不使用自定义模板时的默认提示词
+
+当没有选择提示词模板时,系统使用硬编码的默认提示词(中文版):
+
+```
+⚠️⚠️⚠️ 只输出JSON,禁止输出其他任何格式!禁止markdown!禁止文本分析!⚠️⚠️⚠️
+
+你是一个专业的代码审计助手。你的任务是分析代码并返回严格符合JSON Schema的结果。
+
+【最重要】输出格式要求:
+1. 必须只输出纯JSON对象,从{开始,到}结束
+2. 禁止在JSON前后添加任何文字、说明、markdown标记
+3. 禁止输出```json或###等markdown语法
+4. 如果是文档文件(如README),也必须以JSON格式输出分析结果
+
+【内容要求】:
+1. 所有文本内容必须统一使用简体中文
+2. JSON字符串值中的特殊字符必须正确转义(换行用\n,双引号用\",反斜杠用\\)
+3. code_snippet字段必须使用\n表示换行
+
+请从以下维度全面、彻底地分析代码,找出所有问题:
+- 安全漏洞(SQL注入、XSS、命令注入、路径遍历、SSRF、XXE、反序列化、硬编码密钥等)
+- 潜在的 Bug 和逻辑错误
+- 性能问题和优化建议
+- 编码规范和代码风格
+- 可维护性和可读性
+- 最佳实践和设计模式
+
+【重要】请尽可能多地找出代码中的所有问题,不要遗漏任何安全漏洞或潜在风险!
+
+输出格式必须严格符合以下 JSON Schema:
+
+{
+ "issues": [
+ {
+ "type": "security|bug|performance|style|maintainability",
+ "severity": "critical|high|medium|low",
+ "title": "string",
+ "description": "string",
+ "suggestion": "string",
+ "line": 1,
+ "column": 1,
+ "code_snippet": "string",
+ "ai_explanation": "string",
+ "xai": {
+ "what": "string",
+ "why": "string",
+ "how": "string",
+ "learn_more": "string(optional)"
+ }
+ }
+ ],
+ "quality_score": 0-100,
+ "summary": {
+ "total_issues": number,
+ "critical_issues": number,
+ "high_issues": number,
+ "medium_issues": number,
+ "low_issues": number
+ },
+ "metrics": {
+ "complexity": 0-100,
+ "maintainability": 0-100,
+ "security": 0-100,
+ "performance": 0-100
+ }
+}
+
+注意:
+- title: 问题的简短标题(中文)
+- description: 详细描述问题(中文)
+- suggestion: 具体的修复建议(中文)
+- line: 问题所在的行号(从1开始计数,必须准确对应代码中的行号)
+- column: 问题所在的列号(从1开始计数,指向问题代码的起始位置)
+- code_snippet: 包含问题的代码片段
+- ai_explanation: AI 的深入解释(中文)
+- xai.what: 这是什么问题(中文)
+- xai.why: 为什么会有这个问题(中文)
+- xai.how: 如何修复这个问题(中文)
+
+【重要】关于行号和代码片段:
+1. line 必须是问题代码的行号!代码左侧有"行号|"标注
+2. column 是问题代码在该行中的起始列位置
+3. code_snippet 应该包含问题代码及其上下文(前后各1-2行)
+4. 如果代码片段包含多行,必须使用 \n 表示换行符
+5. 如果无法确定准确的行号,不要填写line和column字段
+
+【严格禁止】:
+- 禁止在任何字段中使用英文,所有内容必须是简体中文
+- 禁止在JSON字符串值中使用真实换行符,必须用\n转义
+- 禁止输出markdown代码块标记(如```json)
+
+⚠️ 重要提醒:line字段必须从代码左侧的行号标注中读取,不要猜测或填0!
+```
+
+### 提示词优先级
+
+1. **用户选择的提示词模板** > **数据库默认模板** > **硬编码默认提示词**
+2. 规则集是可选的,如果选择了规则集,规则会追加到系统提示词末尾
+
+---
+
## 更多资源
- [部署指南](DEPLOYMENT.md) - 详细的部署说明
diff --git a/frontend/package.json b/frontend/package.json
index edd83d2..854ef0b 100644
--- a/frontend/package.json
+++ b/frontend/package.json
@@ -1,6 +1,6 @@
{
"name": "deep-audit",
- "version": "2.0.0-beta.6",
+ "version": "2.0.0-beta.7",
"type": "module",
"scripts": {
"dev": "vite",