Skip to content

Security: oyj123321/my-todo-list

Security

SECURITY.md

安全配置说明

敏感信息处理

本项目已移除所有硬编码的 API Key 和敏感信息,采用配置文件方式管理。

配置文件说明

config.secret.js(不提交到仓库)

此文件包含真实的 API Key 等敏感信息,不会被提交到版本控制系统(已加入 .gitignore)。

首次使用时,请:

  1. 复制 miniprogram/utils/config.secret.example.jsminiprogram/utils/config.secret.js
  2. config.secret.js 中填入真实的 API Key

config.secret.example.js(提交到仓库)

这是配置文件的模板,包含占位符值,可以安全地提交到代码仓库。

安全检查清单

在开源或分享代码前,请确认:

  • .gitignore 文件已正确配置,排除 config.secret.js
  • 所有硬编码的 API Key 已移除
  • config.secret.js 文件未被提交(如果已提交,需要从 git 历史中移除)
  • config.secret.example.js 已创建并包含配置模板

从 Git 历史中移除敏感信息

如果敏感信息已经被提交到 Git 历史中,需要清理历史记录:

# 使用 git filter-branch 或 BFG Repo-Cleaner 移除敏感文件
# 注意:这会改写 Git 历史,需要强制推送

# 示例(谨慎使用):
git filter-branch --force --index-filter \
  "git rm --cached --ignore-unmatch miniprogram/utils/config.secret.js" \
  --prune-empty --tag-name-filter cat -- --all

或者使用更简单的工具:

生产环境建议

虽然配置文件方式可以避免硬编码,但最佳实践是:

  1. 使用云函数:将 API 调用移到云函数中,API Key 存储在云函数的环境变量中
  2. 使用环境变量:在云开发环境中配置环境变量,而不是写死在代码中
  3. 域名白名单:在 API 服务提供商处配置域名白名单,限制调用来源
  4. 调用频率限制:设置合理的调用频率限制,防止滥用

当前实现

当前项目使用配置文件方式管理 API Key,适用于:

  • 个人开发
  • 学习项目
  • 需要快速开发的场景

对于生产环境,建议迁移到云函数实现。

There aren't any published security advisories