AI JobPilot(投递牛马)默认作为个人电脑上的本地工具使用。项目涉及招聘平台登录状态、简历、AI 模型密钥和本地岗位数据,请在安装、排错和提交 Issue 时优先保护个人信息。
| 版本 | 安全修复状态 |
|---|---|
当前 main 与最新版本 |
✅ 接受安全修复 |
| 历史版本和未合并分支 |
请不要在公开 Issue、Pull Request、Discussion 或截图中发布:
- API Key、Token、Cookie、账号密码
- 真实简历、手机号、邮箱、聊天记录
- 浏览器用户目录、登录二维码或会话信息
- 可直接访问个人数据的数据库和日志
发现安全问题时:
- 优先使用仓库 Security 页面中的私密漏洞报告入口(如果该入口已启用)。
- 如果私密入口不可用,可创建一个不包含漏洞细节和敏感数据的 Issue,仅说明“需要私下报告安全问题”。
- 在获得安全沟通方式前,不要上传利用代码、真实密钥、数据库或完整日志。
- 请说明受影响版本、模块、影响范围和经过脱敏的复现条件。
- 不建议把项目直接部署到公网供多人共用。
- 前端、后端和 Chrome Bridge 应只在受信任的本机环境中运行。
- 不要关闭人工确认后再进行大规模自动投递。
- 不要实现或使用绕过验证码、登录验证、平台风控和投递限制的功能。
- 不要使用来源不明的浏览器配置、扩展包、脚本或数据库文件。
请确保以下内容始终只保存在本机:
.env、.env.local和其他真实配置文件- 账号、密码、Cookie、Token、API Key
db/getjobs.db及其备份data/、logs/、output/中的个人运行数据- Chrome 用户数据目录、浏览器缓存和 Playwright 缓存
- 简历图片、聊天截图、求职记录和其他个人敏感资料
如果敏感信息曾经被提交到 Git:
- 立即撤销或轮换相关密钥、Cookie 和账号会话。
- 仅删除最新文件并不足以清除历史记录,应进一步清理 Git 历史。
- 检查 Fork、Actions 日志、Release 和缓存中是否仍有副本。
- Chrome Bridge 面向本地工作台和声明的招聘平台页面工作。
- 扫描岗位时,只应向本地后端提交完成业务所需的结构化岗位信息。
- 不应把平台 Cookie、账号密码、完整页面存档或浏览器缓存写入仓库。
- 消息来源、页面域名和本地服务地址必须保持校验。
- 投递任务必须进入待确认状态,并由用户明确确认后执行。
- 登录过期、验证码、异常页和风控提示应停止流程并给出诊断,而不是尝试绕过。
- 默认数据库路径为
db/getjobs.db,该目录应由.gitignore忽略。 - Flyway 脚本只管理表结构,不应包含真实个人数据。
- 日志应避免记录完整简历、密钥、Cookie、Token 和页面隐私内容。
- 分享日志前,请搜索并移除姓名、手机号、邮箱、公司联系人和岗位沟通内容。
- 数据库备份由用户自行保管,建议存放在受控目录并进行磁盘加密。
- API Key 应通过本地配置或环境变量保存,不应硬编码到源码。
- 使用第三方模型服务前,请确认其数据处理和保留政策。
- 不要把包含敏感身份信息的完整简历发送给不受信任的模型接口。
- 日志、异常栈和前端提示不得回显完整密钥。
- GitHub Actions 只应使用临时测试数据库和最小权限。
- CI 不应读取个人招聘平台账号、Cookie、简历或本地模型密钥。
- 不应把包含隐私数据的日志、数据库或浏览器缓存上传为 Artifact。
- 新增第三方 Action 时,应优先锁定可信版本或提交 SHA。
仓库使用以下自动化检查降低常见风险:
- CodeQL:分别分析 Java / Kotlin 与 JavaScript / TypeScript,包含扩展安全查询。
- Dependabot:每周检查 Gradle、前端依赖和 GitHub Actions,默认不自动提交大版本升级。
- Chrome 扩展校验:检查 Manifest V3、版本号、声明文件、脚本引用和 JavaScript 语法。
- CI 临时数据隔离:测试只使用 GitHub Runner 的临时目录和 SQLite 测试数据库。
- Release 校验:发布前执行测试、构建、扩展校验并生成 SHA256 校验文件。
自动化扫描通过并不代表项目不存在安全问题。涉及账号会话、浏览器消息、文件路径、日志输出和外部请求的修改仍需人工审查。
Release 产物不得包含 .env、数据库、日志、Chrome Profile、真实简历、Cookie、Token 或 API Key。
发布后应使用 SHA256SUMS.txt 校验文件完整性。完整发布流程与校验方法见 docs/releases.md。
AI 代聊 HR、消息提醒、面试信息汇总等能力上线前,必须明确:
- 哪些动作只是生成建议,哪些动作会代表用户发送内容
- 发送内容是否必须由用户最终确认
- 微信、企业微信和模型配置如何避免泄露
- 平台规则是否允许相关自动化辅助
- 如何撤销任务、审计发送记录并处理误操作
任何涉及代表用户对外发送内容的功能,都应默认保留人工确认和可追踪记录。