跳转到正文
报告库
用途分类 / 其他用途

Lark Approval Skill 安全审计

作者说它能做什么(原文)

飞书审批:查询和处理审批待办/已办/实例,搜索可发起审批定义、查看定义详情并发起原生审批实例。当用户要处理审批任务、查看审批实例、搜索或发起审批时使用。审批待办不是飞书任务;非审批类待办走 lark-task。不负责创建审批定义;三方审批定义不走原生提单。

第三方安全检查结论

这次检查未发现明显风险

已检查文件
17
发现的风险
0
会不会运行危险命令?检查是否下载程序后直接运行、让他人远程控制电脑,或藏起要运行的命令。未发现风险
会不会泄露文件和密钥?检查是否发送含密码或密钥的文件,以及代码里是否直接写了密钥。未发现风险
会不会删除文件或一直在后台运行?检查是否大范围删除文件、改写磁盘,或设置自动启动。未发现风险
会不会绕过安全保护?检查是否跳过网站安全验证、开放过多文件权限,或取消操作前的确认。未发现风险
会不会误导 AI 或隐藏内容?检查工作说明是否要求 AI 忽略你的指令、干扰检查结果,或夹带看不见的文字。未发现风险
会不会偷偷改推广链接或收款方?检查是否强制替换推广链接或收款对象,同时要求隐瞒更改。未发现风险

Skill 逻辑拆解

5 个说明模块

该 Skill 以当前飞书用户身份查询审批待办、实例和定义,并可同意、拒绝、转交、加签、退回、催办、撤回或追加抄送;这些操作会作用于用户真实的审批流程。

查看原文
SKILL.md:37来自说明文档
| 发起原生审批实例/提交请假审批/提交报销审批/创建审批实例 | `instances create` | [`lark-approval-initiate.md`](references/lark-approval-initiate.md)             || 查/搜待办、已办 | `tasks query`(`topic`:1待办 2已办 17未读 18已读) | [`lark-approval-tasks-query.md`](references/lark-approval-tasks-query.md)       || 看表单/进度/当前节点 | `instances get` | [`lark-approval-instances-get.md`](references/lark-approval-instances-get.md)   || 同意审批 | `tasks approve` | [`lark-approval-tasks-approve.md`](references/lark-approval-tasks-approve.md)   || 拒绝审批 | `tasks reject` | [`lark-approval-tasks-reject.md`](references/lark-approval-tasks-reject.md)     || 转交审批 | `tasks transfer` | [`lark-approval-tasks-transfer.md`](references/lark-approval-tasks-transfer.md) || 加签审批 | `tasks add_sign` | [`lark-approval-tasks-add-sign.md`](references/lark-approval-tasks-add-sign.md) || 退回审批 | `tasks rollback` | [`lark-approval-tasks-rollback.md`](references/lark-approval-tasks-rollback.md) || 催办审批 | `tasks remind` | [`lark-approval-tasks-remind.md`](references/lark-approval-tasks-remind.md)     || 撤回已发起审批 | `instances cancel` | [`lark-approval-instances-cancel.md`](references/lark-approval-instances-cancel.md) || 给审批实例追加抄送 | `instances cc` | [`lark-approval-instances-cc.md`](references/lark-approval-instances-cc.md)     || 按定义/关键词查已发起审批 | `instances initiated` | [`lark-approval-instances-initiated.md`](references/lark-approval-instances-initiated.md) |

实例详情可能包含发起人和部门标识、完整表单、当前节点、任务、操作记录及评论。因此,查看详情可能向代理暴露人事、财务或其他业务敏感信息,但指令限定为用户明确要求查看这些内容时才读取。

查看原文
references/lark-approval-instances-get.md:61来自说明文档
| `definition_name` | 审批名称 || `user_id` | 发起审批的用户 ID || `department_id` | 发起人所在部门 ID || `status` | 审批实例状态,见下方“status 枚举” || `reverted` | 单据是否已被撤销 || `start_time` | 审批创建时间 || `end_time` | 审批完成时间,未完成时通常为 `0` || `form` | 表单数据,JSON 字符串 || `current_nodes` | 当前审批节点列表 || `tasks` | 审批任务列表 || `operation_records` | 审批动态,例如通过、拒绝、转交、加签、回退、撤回、抄送 || `comments` | 评论列表 |
SKILL.md:56来自说明文档
### 1) 先拿最小必要信息,再执行- 目标只是处理待办时,优先 `tasks query` 获取 `instance_code` + `task_id`- **只有**用户明确要看详情、当前节点、表单内容、流程进度时,才调用 `instances get`- 用户已经明确给出 `instance_code` / `task_id` 时,不要先查列表再过滤

发起审批前,Skill 要先确认审批定义、表单结构和节点要求;多个候选不得替用户选择,真实提单前还必须让用户确认最终定义、表单值及审批人/抄送人。第三方审批只返回其发起链接,不调用原生创建接口。

查看原文
references/lark-approval-initiate.md:5来自说明文档
- **原生审批提单如果用户未明确给出 `approval_code`,必须固定走 `approvals search` -> `approvals get` -> `instances create`** 不要跳过 `get` 直接拼请求。- **原生审批提单如果用户明确给出 `approval_code`,固定走 `approvals get` -> `instances create`** 不要跳过 `get` 直接拼请求。- **`is_external=true` 的定义是三方定义。** 这类定义不要调用 `instances create`,应优先使用 `create_link`。- **所有人员类参数默认使用 `open_id`。** 若用户给的是姓名、邮箱或其他身份,先用 [`../../lark-contact/SKILL.md`](../../lark-contact/SKILL.md) 解析。- **先读控件参数 reference 和值来源 reference,再读本文里的创建参数规则。** 提单前必须先阅读 [`lark-approval-instance-form-control-parameters.md`](./lark-approval-instance-form-control-parameters.md) 和 [`lark-approval-instance-value-sourcing.md`](./lark-approval-instance-value-sourcing.md)。- **`approvals.get.form` 不是创建 payload 的原样模板。** 它主要用于识别控件 `id`、`type`、选项值范围和明细子控件结构;真正的 `instances create --data.form` 中,控件 `value` 结构以 [`lark-approval-instance-form-control-parameters.md`](./lark-approval-instance-form-control-parameters.md) 为准。- **节点参数只从 `node_list` 和本文里的节点参数规则里取。** 节点 key 必须来自定义详情返回的节点标识;审批人/抄送人列表传用户 ID 时,不要混用姓名或其他身份标识。- **看到 `need_approver=true` 就说明该节点需要发起人补充审批人。** 如果 `approver_chosen_multi=false`,该节点只允许一个 `open_id`。- **创建实例前先确认。** `approval instances create` 是写操作,执行前,让用户确认最终定义、表单值和节点参数;真正执行时显式传 `--yes`。
references/lark-approval-approvals-search.md:60来自说明文档
- **这是发起审批工作流的第一步。** 标准顺序是:`approvals search` -> `approvals get` -> `instances create`。- **搜索结果为空时,不要猜。** 直接告诉用户当前关键词下没有可发起定义,并建议用户换关键词。- **命中多个结果时,不要替用户拍板。** 先把候选定义列出来,让用户选择目标审批定义。- **`is_external=true` 时不要调用 `approval instances create`。** 这类定义属于三方审批,优先返回 `create_link` 并说明需要通过链接发起。- **只有 `is_external=false` 的原生定义,才继续 `approvals get`。**- **如果用户已经明确给出 `approval_code`,不要再 search。** 直接执行 `approval approvals get`。

同意、拒绝、转交、退回、撤回等写操作被标为高风险,并要求目标明确且用户已明确同意后才传入确认开关。失败时最多重试一次,并只允许补做一次状态查询,以降低重复提交造成的流程变更风险。

查看原文
references/lark-approval-tasks-approve.md:4来自说明文档
同意一个审批任务(用户级写操作)。通常先通过 `tasks query` 拿到 `task_id` 和 `instance_code`,必要时再用 `instances get` 查看详情,然后再执行同意。> [!CAUTION]> 这是 **high-risk-write** 写操作。建议先用 `--dry-run` 预览;真正执行时,如果用户已明确同意审批且目标任务无误,再带 `--yes` 运行。不要在未获用户明确同意时静默追加 `--yes`。需要的 scopes: ["approval:task:write"]
references/lark-approval-instances-cancel.md:4来自说明文档
撤回一个已发起的审批实例(用户级写操作)。通常先通过 `instances initiated`、`tasks query` 或 `instances get` 确认目标审批实例,拿到 `instance_code` 后再执行撤回。> [!CAUTION]> 这是 **high-risk-write** 写操作。建议先用 `--dry-run` 预览;真正执行时,如果用户已明确要撤回该审批实例且目标实例无误,再带 `--yes` 运行。不要在未获用户明确同意时静默追加 `--yes`。需要的 scopes: ["approval:instance:write"]
SKILL.md:68来自说明文档
### 3) 错误码驱动,而不是盲目重试- 写操作失败后,先看错误码和报错语义,再决定是否补查或结束- **除非错误明确提示可恢复或需要补充参数,否则不要重复刷同一个写操作**- 同一个失败原因不要连续多次重试,避免 token 和耗时失控,最多重试1次
SKILL.md:78来自说明文档
1. **先停止盲目重试**,不要连续重复提交相同写操作,最多重试1次2. 优先从以下角度解释:   - 任务可能已被他人处理   - 单据状态已变化,当前动作已不再允许   - 当前用户已不具备该任务的操作资格   - 当前节点或单据状态不支持该操作3. 如需确认,只补 **一次** 状态查询(`tasks query` 或 `instances get`),不要陷入 query/write 循环4. 最终给用户明确结论和下一步建议,而不是继续无意义重试
从这里开始 · 工作说明SKILL.md
lark-approval
连线表示工作说明包含的模块,不是实际运行顺序。点击模块可查看原文。

文件引用关系图

19 处引用
哪些文件发起引用引用了什么
连线表示真实的文件引用,不是运行顺序。点击节点可高亮相关连线,并查看具体文件和原文位置。虚线表示还有文件需要定位。
文件与检查记录17 个文件

检查范围与遗漏

逐文件查看涉及的内容

下方列出本次涉及的原文范围;纳入检查不代表已查清所有问题。

  • SKILL.md已纳入全文
  • references/lark-approval-approvals-get.md已纳入全文
  • references/lark-approval-approvals-search.md已纳入全文
  • references/lark-approval-initiate.md已纳入全文
  • references/lark-approval-instances-cancel.md已纳入全文
  • references/lark-approval-instances-cc.md已纳入全文
  • references/lark-approval-instances-get.md已纳入全文
  • references/lark-approval-instances-initiated.md已纳入全文
  • references/lark-approval-tasks-add-sign.md已纳入全文
  • references/lark-approval-tasks-approve.md已纳入全文
  • references/lark-approval-tasks-query.md已纳入全文
  • references/lark-approval-tasks-reject.md已纳入全文
  • references/lark-approval-tasks-remind.md已纳入全文
  • references/lark-approval-tasks-rollback.md已纳入全文
  • references/lark-approval-tasks-transfer.md已纳入全文
  • references/lark-approval-instance-form-control-parameters.md已纳入全文
  • references/lark-approval-instance-value-sourcing.md已纳入全文

这份报告只针对上方版本。我们看了拿到的代码和说明文件,没有实际运行 Skill,也没有检查它另外安装的软件包。因此,这不是“保证安全”的承诺;换了版本或使用环境,结果也可能不同。

  • SKILL.md工作说明
  • references/lark-approval-approvals-get.md配套文件
  • references/lark-approval-approvals-search.md配套文件
  • references/lark-approval-initiate.md配套文件
  • references/lark-approval-instance-form-control-parameters.md配套文件
  • references/lark-approval-instance-value-sourcing.md配套文件
  • references/lark-approval-instances-cancel.md配套文件
  • references/lark-approval-instances-cc.md配套文件
  • references/lark-approval-instances-get.md配套文件
  • references/lark-approval-instances-initiated.md配套文件
  • references/lark-approval-tasks-add-sign.md配套文件
  • references/lark-approval-tasks-approve.md配套文件
  • references/lark-approval-tasks-query.md配套文件
  • references/lark-approval-tasks-reject.md配套文件
  • references/lark-approval-tasks-remind.md配套文件
  • references/lark-approval-tasks-rollback.md配套文件
  • references/lark-approval-tasks-transfer.md配套文件

代码和说明中提到的操作

运行命令
SKILL.md:89来自说明文档
```bashlark-cli approval approvals search --data '{"keyword":"请假"}' --as user
references/lark-approval-approvals-get.md:10来自说明文档
```bash# 按 approval_code 查询审批定义详情
references/lark-approval-approvals-get.md:36来自说明文档
```bashlark-cli approval approvals get --params '{"approval_code":"<APPROVAL_CODE>"}' --as user
连接外部网站
references/lark-approval-initiate.md:220来自说明文档
- instance_code: 19EAC829-F1CB-527F-BE2A-1330422E60C0- instance_link: https://...```
读取了多少行
2,417
文件校验值(用于核对版本)
f3798e7f5e5da9049850335eec5721fe8a6f5306b86f92bc234a91237ffc19d5