Yearning Web界面使用教程:可视化管理防御系统
一、系统简介
Yearning是一款专注于SQL注入检测与防御的本地部署平台,提供直观的Web可视化界面,帮助数据库管理员(DBA)和开发人员实现SQL审计、查询管理和安全防御的全流程可视化管控。系统采用RBAC(基于角色的访问控制)权限模型,支持实时检测、自动SQL语法检查和敏感数据脱敏,确保数据库操作的安全性与合规性。
二、环境准备与安装部署
2.1 环境要求
| 环境项 | 最低配置要求 | 推荐配置要求 |
|---|---|---|
| 操作系统 | Linux (x86_64/ARM) | CentOS 7+/Ubuntu 20.04+ |
| 数据库 | MySQL 5.7+ | MySQL 8.0+ |
| 内存 | 2GB RAM | 4GB RAM |
| 存储空间 | 10GB 可用空间 | 20GB SSD 可用空间 |
| 网络端口 | 8000(默认Web端口) | 8000(建议配置HTTPS加密) |
2.2 部署方式
2.2.1 手动部署
# 1. 克隆代码仓库
git clone https://gitcode.com/gh_mirrors/ye/Yearning
# 2. 进入项目目录
cd Yearning
# 3. 初始化数据库(首次运行)
./Yearning install
# 4. 启动服务
./Yearning run
2.2.2 Docker部署
# 1. 初始化数据库(首次运行)
docker run --rm -it -p 8000:8000 \
-e SECRET_KEY=your_secret_key \
-e MYSQL_USER=root \
-e MYSQL_ADDR=mysql_host:3306 \
-e MYSQL_PASSWORD=your_mysql_password \
-e MYSQL_DB=yearning \
-e Y_LANG=zh_CN \
yeelabs/yearning "/opt/Yearning install"
# 2. 启动容器
docker run -d -it -p 8000:8000 \
-e SECRET_KEY=your_secret_key \
-e MYSQL_USER=root \
-e MYSQL_ADDR=mysql_host:3306 \
-e MYSQL_PASSWORD=your_mysql_password \
-e MYSQL_DB=yearning \
-e Y_LANG=zh_CN \
--name yearning \
yeelabs/yearning
2.3 配置文件说明
系统配置文件为项目根目录下的config.toml,首次部署需从模板文件复制生成:
cp conf.toml.template config.toml
核心配置项说明:
# 数据库连接配置
[Mysql]
Db = "yearning" # 数据库名称
Host = "127.0.0.1" # 数据库地址
Port = "3306" # 数据库端口
Password = "password" # 数据库密码
User = "root" # 数据库用户名
# Web服务配置
[Server]
Port = "8000" # Web服务端口
SecretKey = "your_key" # 系统加密密钥(建议使用32位随机字符串)
Timeout = 300 # 会话超时时间(秒)
三、Web界面核心功能模块
3.1 登录与权限管理
3.1.1 登录界面
部署完成后,通过浏览器访问 http://服务器IP:8000 进入登录界面。默认管理员账号为 admin,初始密码为 Yearning_admin(首次登录需强制修改密码)。
3.1.2 RBAC权限模型
系统基于角色划分权限,支持自定义角色创建。内置角色包括:
- 超级管理员:拥有系统所有操作权限,可管理用户、角色和系统配置
- 审计员:负责SQL工单审批和审计,无用户管理权限
- 开发人员:可提交SQL查询工单,查看自己的操作记录
- 只读用户:仅可查看审计记录和查询历史,无操作权限
3.2 SQL审计工单管理
3.2.1 工单创建流程
- 提交工单:开发人员通过"工单管理"→"新建工单"填写SQL操作请求,支持批量SQL语句提交
- 自动检查:系统对提交的SQL进行语法校验和风险检测(如检测DELETE无WHERE条件、UPDATE全表更新等危险操作)
- 审批流程:工单按预设审批链流转,审计员在"审计中心"查看待审批工单并执行通过/驳回操作
- 执行与回滚:审批通过的SQL由系统自动执行,同时生成回滚语句并保存审计日志
3.2.2 工单状态监控
在"工单列表"页面可实时查看所有工单的状态,包括:
- 待审批:等待审计员处理的工单
- 已通过:审批通过但未执行的工单
- 执行中:系统正在执行的SQL操作
- 已完成:执行成功并生成回滚记录的工单
- 已驳回:被审计员拒绝的工单
- 执行失败:SQL执行出错的工单(可查看错误日志)
3.3 查询审计与安全防御
3.3.1 查询权限控制
管理员可通过"数据源管理"配置数据库连接,并为不同用户/角色分配数据源访问权限:
- 数据库级权限:限制用户可访问的数据库实例
- 表级权限:限制用户可查询的表范围
- 字段级脱敏:对手机号、身份证号等敏感字段配置自动脱敏规则(如显示
138****5678)
3.3.2 SQL注入实时检测
系统在SQL执行前通过内置规则引擎进行注入检测,支持以下防御机制:
- 关键字过滤:检测并拦截包含
UNION SELECT、EXEC、OR 1=1等注入特征的SQL - 参数化查询强制转换:自动将非参数化查询转换为预编译语句(Prepared Statement)
- 异常行为监控:记录高频查询、大流量访问等异常操作,触发阈值时自动告警
3.4 AI辅助功能
系统集成AI助手模块,提供以下智能化功能:
- SQL优化建议:对提交的SQL语句进行性能分析,提供索引优化、JOIN顺序调整等建议
- 自然语言转SQL:在"AI工具"页面输入自然语言描述(如"查询2023年10月用户注册数量"),系统自动生成对应的SQL语句
- 复杂查询模板:提供常用查询场景的模板库(如数据统计、日志分析),支持一键复用
四、系统配置与高级功能
4.1 数据源管理
在"系统管理"→"数据源配置"中添加数据库连接信息,支持MySQL、PostgreSQL等多种数据库类型。配置项包括:
- 数据源名称(显示用)
- 数据库类型(MySQL/PostgreSQL等)
- 连接地址与端口
- 用户名与密码(加密存储)
- 连接池大小(默认10,可根据并发量调整)
- 超时时间(默认30秒)
4.2 审计规则自定义
管理员可在"系统配置"→"审计规则"中自定义SQL检查规则,支持:
- 新增规则:设置规则名称、SQL匹配模式(正则表达式)、风险等级(低/中/高)和处理方式(警告/拦截)
- 规则启用/禁用:根据业务需求灵活开关特定规则
- 规则优先级:设置规则执行顺序,高优先级规则优先匹配
示例规则配置:
| 规则名称 | 正则表达式模式 | 风险等级 | 处理方式 | 说明 |
|---|---|---|---|---|
| DELETE无WHERE | ^DELETE\s+FROM\s+\w+\s*[^WHERE] | 高 | 拦截 | 禁止无条件删除操作 |
| UPDATE全表更新 | ^UPDATE\s+\w+\s+SET\s+[^WHERE] | 高 | 拦截 | 禁止无WHERE条件的UPDATE |
| LIMIT限制 | ^SELECT\s+.\s+FROM\s+\w+\s[^LIMIT] | 低 | 警告 | 建议添加LIMIT限制返回量 |
4.3 敏感操作审计日志
系统对所有关键操作记录详细日志,包括:
- 用户登录日志(IP地址、登录时间、设备信息)
- SQL执行日志(执行人、执行时间、影响行数、执行耗时)
- 权限变更日志(角色修改、用户新增/删除、权限分配)
- 系统配置日志(配置项修改前后的值、修改人、修改时间)
日志支持按时间范围、操作类型、用户名等多维度检索,并可导出为CSV格式存档。
五、日常运维与常见问题
5.1 系统监控
在"仪表盘"页面可查看系统运行状态指标:
- 工单统计:今日/本周/本月工单提交量、通过率、执行成功率
- 数据库连接状态:各数据源连接池使用率、活跃连接数、慢查询数量
- 系统资源监控:CPU使用率、内存占用、磁盘空间使用情况
5.2 常见问题解决
5.2.1 登录失败
- 密码错误:使用
./Yearning reset-pwd命令重置管理员密码 - 会话超时:检查
config.toml中的Timeout配置项,适当延长超时时间 - 权限不足:确认用户所属角色是否有登录系统的权限
5.2.2 SQL执行失败
- 语法错误:查看工单详情中的"错误信息"字段,根据提示修正SQL语法
- 权限不足:检查数据源配置的数据库账号是否有对应操作权限
- 锁表冲突:确认目标表是否被其他事务锁定,可尝试稍后重试
5.2.3 系统性能问题
- 连接池耗尽:在"数据源配置"中增加连接池大小
- 慢查询堆积:优化SQL语句或调整数据库索引,必要时联系DBA处理
- 服务器资源不足:检查服务器CPU/内存使用情况,升级硬件配置或优化系统参数
六、总结与最佳实践
6.1 安全使用建议
- 最小权限原则:为用户分配最小必要权限,避免过度授权
- 定期审计规则更新:根据新出现的SQL注入攻击手法,更新审计规则库
- 敏感数据脱敏:对所有包含个人信息、商业秘密的字段强制开启脱敏
- 双因素认证:建议在"系统安全"中启用双因素认证(2FA)增强登录安全
- 定期备份:配置数据库定时备份,防止数据丢失
6.2 效率提升技巧
- 使用工单模板:将常用SQL操作保存为模板,减少重复编写工作
- 批量处理工单:对同类SQL操作(如批量创建表)使用批量工单功能
- 快捷键操作:系统支持常见操作快捷键(如Ctrl+S保存、F5刷新等)
- 自定义仪表盘:根据个人工作习惯调整仪表盘 widgets 布局
通过Yearning的可视化管理界面,团队可实现SQL操作的规范化、流程化和安全化管控,有效降低SQL注入风险,提升数据库管理效率。系统的自动化检查和审计流程减少了人工干预,同时完整的审计日志为合规审计提供了可追溯的依据。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



