---
name: kd-enterprise-code
description: 企业版代码安全与插件开发规范。禁止关键字/代码约束/插件设计。
alwaysApply: false
---

# 企业版代码安全与插件规范

## 代码安全（禁止类）
- 【强制】禁止所有危害服务器运行安全的代码
- 【强制】禁止使用 `Process` / `ProcessStartInfo` / `System.Diagnostics`
- 【强制】禁止使用 `Socket` / `System.Net.Sockets` / `SocketAsyncEventArgs`
- 【强制】禁止调用管理中心或其他 BOS 禁用调用接口（`Kingdee.BOS.MC.*`）
- 【强制】禁止 `UnSafe` 代码
- 【强制】禁止使用 `dynamic` 关键字（使用过多导致"数组维度超过支持"错误）
- 【强制】禁止使用 `Trace.WriteLine` 和 `Debug.WriteLine` 输出日志（严重并发问题）
- 【强制】禁止主动调用 `GC.Collect()`（导致整个系统卡顿）

## 数据与配置安全
- 【强制】禁止将密钥/密码/连接信息/域名等敏感信息硬编码 → 加密存数据库
- 【强制】禁止修改直接修改 `Kingdee.BOS.Context`（登录身份凭证，修改导致数据紊乱）
- 【强制】禁止在代码中出现任何形式的密码/密钥明文数据
- 【强制】禁止每次调用 WebApi 接口都登录（会话有效期 20 分钟）
- 【强制】禁止密码明文登录
- 【强制】禁止使用 Administrator 调用 API 接口

## 资源与文件
- 【推荐】不建议使用本地文件操作（`System.IO` / `FileStream` / `MemoryStream` 等平台规定临时目录除外）
- 【推荐】避免一次性读取大文件（>100M）到内存
- 【推荐】大数据量业务场景分批加载到内存或中间表
- 【强制】二开生成的临时文件必须放到 `TempfilePath` 以外的目录（系统定期销毁）
- 【强制】超过 4M 的文件禁止直接上传，必须分批上传
- 【强制】附件明细表二开插入数据时禁止自定义主键值

## 插件开发
- 【强制】二开插件禁止关闭操作的事务
- 【强制】禁止在操作事务中主动释放网控
- 【强制】二开代码动态新增列或字段时，字段标识只允许英文+数字，必须英文开头
- 【强制】禁止对已启动工作流的单据调用标准审核反审核接口
- 【强制】禁止对已启动工作流的单据数据进行物理删除
- 【强制】禁止占用或禁用 TCP 端口 10905（消息队列服务使用）
- 【强制】禁止二开代码访问本地数据库 `MDS.s3db`
- 【强制】禁止二开调用二进制反序列化方法（注入风险）
- 【强制】核心单据数据调用保存接口应增加数据唯一性校验
- 【推荐】多个二开插件之间不应该有插件执行顺序的依赖
- 【推荐】二开插件代码调用第三方平台接口必须有超时控制

## 不安全代码
- 【推荐】不使用本地文件操作（平台规定临时目录除外）
- 【强制】禁用一切可能危害服务器运行安全的代码（平台会动态调整规则）