文章总结: 本文探讨利用AI编码智能体的语义理解与全局分析能力解决数据分类分级结果与应用API安全管控脱节的问题,尝试梳理数据库表字段与API出入参字段的对应关系。通过让AI智能体开发SpringBootDemo项目并自动输出API资产清单,成功建立了字段映射关系,能够标识涉密API及敏感级别,为细化应用数据安全管控提供新思路,但复杂项目效果待验证。 综合评分: 72 文章分类: AI安全,数据安全,应用安全,安全建设
AI编码智能体在应用数据分类分级中的思考
原创
刘顺 刘顺
安全有术
2026年3月5日 21:46 广东
0x00 前言
数据分类分级结果与应用API数据安全管控存在鸿沟。目前的数据分类分级基本上都是基于数据库表、字段维度。应用API是数据安全的高风险领域,应用API数据安全工作中的展示脱敏、传输字段级加密等措施都是基于API出入参字段。数据库表字段与API出入参字段,二者是有关联的,从代码的角度来看,它们是通过RequestMapping、代码处理逻辑以及mapper文件关联,但之前一直没有找到好的实现关联的技术。
AI编码智能体,具备语义理解、逻辑推理、跨文件与全局分析的能力,它能够向资深开发人员一样“理解代码意思”,那理论上它应该可以梳理出数据库表字段与API出入参字段的对应关系。
0x01 验证过程
(1)让AI编码智能体开发一个Demo项目
全程用聊天框的方式,边聊天边让智能体写代码,代码全部是智能体写的,人工没写一行代码。技术栈使用的是Spring Boot + Spring Security + MyBatis,实现了登录认证以及商品管理的相关功能。
(2)让智能体整理输出API资产清单
(3)让智能体梳理数据库表字段与API出入参字段的对应关系
输入结果样例如下:
# Spring Boot 项目完整API清单## 项目基本信息- **框架**: Spring Boot 3.2.0- **数据库**: MySQL- **认证方式**: JWT + SM3加密- **端口**: 8080- **基础URL**: `http://localhost:8080`---## 字段依赖关系说明### 依赖关系类型定义- **强相关**: API字段值直接对应数据库表字段,无转换或处理- **弱相关**: API字段值经过加工、加密、计算等处理后存储到数据库表字段- **不相关**: API字段与数据库表字段无直接关系(如:响应状态、消息、Token等)---## 一、认证相关API (AuthController)### 1. 用户登录- **URL**: `POST /api/auth/login`- **认证**: 无需认证- **说明**: 用户登录接口,使用SM3加密验证密码,成功后返回JWT Token**入参 (LoginRequest)**:| 英文字段 | 类型 | 必填 | 中文含义 | 依赖关系 | 对应数据库表.字段 ||---------|------|------|---------|---------|------------------|| username | String | 是 | 用户名 | 强相关 | user.username || password | String | 是 | 密码 | 弱相关 | user.password(经过SM3加密验证) |**出参 (LoginResponse)**:| 英文字段 | 类型 | 中文含义 | 依赖关系 | 对应数据库表.字段 | 说明 ||---------|------|---------|---------|------------------|------|| success | boolean | 是否成功 | 不相关 | - | 业务处理状态 || message | String | 返回消息 | 不相关 | - | 业务处理消息 || token | String | JWT令牌(成功时返回) | 不相关 | - | JWT生成的认证令牌 || userId | Long | 用户ID(成功时返回) | 强相关 | user.id | 直接从数据库读取 || username | String | 用户名(成功时返回) | 强相关 | user.username | 直接从数据库读取 |---### 2. 获取当前用户信息- **URL**: `GET /api/auth/current-user`- **认证**: 需要认证- **说明**: 获取当前登录用户的信息**入参**: 无**出参 (LoginResponse)**:| 英文字段 | 类型 | 中文含义 | 依赖关系 | 对应数据库表.字段 | 说明 ||---------|------|---------|---------|------------------|------|| success | boolean | 是否成功 | 不相关 | - | 业务处理状态 || message | String | 返回消息 | 不相关 | - | 业务处理消息 || userId | Long | 用户ID(成功时返回) | 强相关 | user.id | 从JWT Token中获取 || username | String | 用户名(成功时返回) | 强相关 | user.username | 从JWT Token中获取 |
---## 二、用户管理API (UserController)### 1. 查询所有用户- **URL**: `GET /api/users`- **认证**: 需要认证- **说明**: 获取系统中所有用户的列表**入参**: 无**出参**:| 英文字段 | 类型 | 中文含义 | 依赖关系 | 对应数据库表.字段 | 说明 ||---------|------|---------|---------|------------------|------|| success | boolean | 是否成功 | 不相关 | - | 业务处理状态 || data | Array\<User\> | 用户列表 | - | - | 用户对象数组 || message | String | 返回消息 | 不相关 | - | 业务处理消息 |**User对象字段**:| 英文字段 | 类型 | 中文含义 | 依赖关系 | 对应数据库表.字段 ||---------|------|---------|---------|------------------|| id | Long | 用户ID | 强相关 | user.id || username | String | 用户名 | 强相关 | user.username || password | String | 密码(SM3加密) | 强相关 | user.password || salt | String | 密码盐值 | 强相关 | user.salt || email | String | 邮箱 | 强相关 | user.email || age | Integer | 年龄 | 强相关 | user.age || createTime | Date | 创建时间 | 强相关 | user.create_time || updateTime | Date | 更新时间 | 强相关 | user.update_time |---
## 三、产品管理API (ProductController)### 1. 添加产品- **URL**: `POST /api/products`- **认证**: 需要认证- **说明**: 添加新产品
**入参 (Product)**:| 英文字段 | 类型 | 必填 | 中文含义 | 依赖关系 | 对应数据库表.字段 | 说明 ||---------|------|------|---------|---------|------------------|------|| name | String | 是 | 产品名称 | 强相关 | product.name | 直接存储 || description | String | 否 | 产品描述 | 强相关 | product.description | 直接存储 || price | BigDecimal | 是 | 产品价格 | 强相关 | product.price | 直接存储 || stock | Integer | 是 | 库存数量 | 强相关 | product.stock | 直接存储 || category | String | 是 | 产品分类 | 强相关 | product.category | 直接存储 |
**自动生成的字段**:| 英文字段 | 类型 | 中文含义 | 依赖关系 | 对应数据库表.字段 | 说明 ||---------|------|---------|---------|------------------|------|| id | Long | 产品ID | 弱相关 | product.id | 数据库自增生成 || createTime | Date | 创建时间 | 弱相关 | product.create_time | 数据库自动设置为NOW() || updateTime | Date | 更新时间 | 弱相关 | product.update_time | 数据库自动设置为NOW() |
**出参**:| 英文字段 | 类型 | 中文含义 | 依赖关系 | 对应数据库表.字段 | 说明 ||---------|------|---------|---------|------------------|------|| success | boolean | 是否成功 | 不相关 | - | 业务处理状态 || message | String | 返回消息 | 不相关 | - | 业务处理消息 |
0x02 总结
本文尝试通过AI编码智能体梳理数据库表字段与API出入参字段的对应关系,从而可以根据现有的数据分类分级结果,标识出应用系统的哪些API是涉密API,以及API出入参字段的敏感级别,从而进一步细化应用数据安全管控举措。本文仅仅是一个Demo演示,在真实、复杂项目中的效果还有待验证。
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:安全有术 刘顺 刘顺《AI编码智能体在应用数据分类分级中的思考》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。








![[视频]UAC绕过2(已测试)](/images/random/titlepic/2.jpg)


评论