跳转到正文
报告库
用途分类 / 文档处理

Recipe Sync Contacts To Sheet Skill 安全审计

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

Export Google Contacts directory to a Google Sheets spreadsheet.

第三方安全检查结论

发现安全风险

已检查文件
1
发现的风险
1
会不会运行危险命令?检查是否下载程序后直接运行、让他人远程控制电脑,或藏起要运行的命令。未发现风险
会不会泄露文件和密钥?检查是否发送含密码或密钥的文件,以及代码里是否直接写了密钥。发现 1 项风险
中风险

组织目录的邮箱和电话号码可能被导出到共享或错误的表格

原文依据:4 处
发现了什么

命令读取域目录资料中的姓名、邮箱和电话号码,然后把每个联系人追加到任意 `SHEET_ID`。Skill 没有要求确认这些目录数据的导出授权,也没有检查目标表格的所有者和共享范围。

为什么需要注意

如果目标表格填错、可被外部人员访问,或用户无权批量导出组织目录,最多首批 100 名人员的联系方式可能被不当披露。

该配方的明确用途就是读取组织目录中的姓名、邮箱和电话号码,并向调用者提供的 `SHEET_ID` 写入联系人行。只有在执行者已登录且拥有相应目录和表格权限时才会发生;源码并未表明数据已被导出。风险在于步骤没有要求执行前核对目标表格的所有者、共享范围或导出授权,因此填错或使用广泛共享的表格时,组织联系人信息可能暴露。用户可要求作者加入目标表格及共享设置确认,并限制目录和表格账号权限。

SKILL.md:25来自说明文档打开原文件
1. List contacts: `gws people people listDirectoryPeople --params '{"readMask": "names,emailAddresses,phoneNumbers", "sources": ["DIRECTORY_SOURCE_TYPE_DOMAIN_PROFILE"], "pageSize": 100}' --format json`2. Create a sheet: `gws sheets +append --spreadsheet SHEET_ID --range 'Contacts' --values '["Name", "Email", "Phone"]'`
查看另外 3 个位置
SKILL.md:26来自说明文档打开原文件
1. List contacts: `gws people people listDirectoryPeople --params '{"readMask": "names,emailAddresses,phoneNumbers", "sources": ["DIRECTORY_SOURCE_TYPE_DOMAIN_PROFILE"], "pageSize": 100}' --format json`2. Create a sheet: `gws sheets +append --spreadsheet SHEET_ID --range 'Contacts' --values '["Name", "Email", "Phone"]'`3. Append each contact row: `gws sheets +append --spreadsheet SHEET_ID --range 'Contacts' --values '["Jane Doe", "jane@company.com", "+1-555-0100"]'`
SKILL.md:27来自说明文档打开原文件
2. Create a sheet: `gws sheets +append --spreadsheet SHEET_ID --range 'Contacts' --values '["Name", "Email", "Phone"]'`3. Append each contact row: `gws sheets +append --spreadsheet SHEET_ID --range 'Contacts' --values '["Jane Doe", "jane@company.com", "+1-555-0100"]'`
SKILL.md:21来自说明文档打开原文件
Export Google Contacts directory to a Google Sheets spreadsheet.
会不会删除文件或一直在后台运行?检查是否大范围删除文件、改写磁盘,或设置自动启动。未发现风险
会不会绕过安全保护?检查是否跳过网站安全验证、开放过多文件权限,或取消操作前的确认。未发现风险
会不会误导 AI 或隐藏内容?检查工作说明是否要求 AI 忽略你的指令、干扰检查结果,或夹带看不见的文字。未发现风险
会不会偷偷改推广链接或收款方?检查是否强制替换推广链接或收款对象,同时要求隐瞒更改。未发现风险

Skill 逻辑拆解

1 个说明模块

该 Skill 要求加载两个未随证据提供的外部技能,并通过 `gws` 命令访问 Google People 和 Sheets;因此,外部技能的实际权限、数据处理和网络行为无法从本材料中核实。

查看原文
SKILL.md:19来自说明文档打开原文件
> **PREREQUISITE:** Load the following skills to execute this recipe: `gws-people`, `gws-sheets`

联系人来源被明确设为域目录资料,并读取姓名、电子邮箱和电话号码;这可能是组织目录,而不只是用户个人保存的 Google 联系人。单次请求最多取 100 条。

查看原文
SKILL.md:25来自说明文档打开原文件
1. List contacts: `gws people people listDirectoryPeople --params '{"readMask": "names,emailAddresses,phoneNumbers", "sources": ["DIRECTORY_SOURCE_TYPE_DOMAIN_PROFILE"], "pageSize": 100}' --format json`2. Create a sheet: `gws sheets +append --spreadsheet SHEET_ID --range 'Contacts' --values '["Name", "Email", "Phone"]'`

导出目标是由 `SHEET_ID` 指定的现有电子表格;步骤先写标题,再要求逐行追加联系人。示例没有创建新表格,也没有展示如何验证目标表格的所有者或共享范围。

查看原文
SKILL.md:26来自说明文档打开原文件
1. List contacts: `gws people people listDirectoryPeople --params '{"readMask": "names,emailAddresses,phoneNumbers", "sources": ["DIRECTORY_SOURCE_TYPE_DOMAIN_PROFILE"], "pageSize": 100}' --format json`2. Create a sheet: `gws sheets +append --spreadsheet SHEET_ID --range 'Contacts' --values '["Name", "Email", "Phone"]'`3. Append each contact row: `gws sheets +append --spreadsheet SHEET_ID --range 'Contacts' --values '["Jane Doe", "jane@company.com", "+1-555-0100"]'`
SKILL.md:27来自说明文档打开原文件
2. Create a sheet: `gws sheets +append --spreadsheet SHEET_ID --range 'Contacts' --values '["Name", "Email", "Phone"]'`3. Append each contact row: `gws sheets +append --spreadsheet SHEET_ID --range 'Contacts' --values '["Jane Doe", "jane@company.com", "+1-555-0100"]'`
从这里开始 · 工作说明SKILL.md
recipe-sync-contacts-to-sheet
连线表示工作说明包含的模块,不是实际运行顺序。点击模块可查看原文。
文件与检查记录1 个文件

检查范围与遗漏

逐文件查看涉及的内容

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

  • SKILL.md已纳入全文

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

  • SKILL.md工作说明
读取了多少行
29
文件校验值(用于核对版本)
8e9d3c4a663aaa66ba241c1bb6c76c2dd98dcd78d9c76bef0d7f21ba05ea3547