-
环境变量管理
- 所有 API 密钥通过环境变量加载
- 使用
.env文件存储本地配置(已添加到.gitignore)
-
文件忽略
.env- 本地配置文件.claude/- Claude 助手配置*.db- 数据库文件cache/- 缓存文件- 日志文件 (
*.log)
-
Git 保护
- 敏感文件已从 Git 历史中移除
.gitignore配置完整
# 复制配置模板
cp .env.example .env
# 编辑 .env 文件,填入你的 API Token
# 使用你喜欢的编辑器打开 .env
nano .env
# 或
vim .env# 方式一:编辑 .env 文件
TUSHARE_TOKEN=your_actual_token_here
# 方式二:环境变量(临时)
export TUSHARE_TOKEN=your_actual_token_here
# 方式三:shell 会话中(推荐用于测试)
TUSHARE_TOKEN=your_token python3 quant.py data 000001.SZ# 检查环境变量是否正确设置
echo $TUSHARE_TOKEN
# 测试连接
quant-system status❌ 永远不要:
# ❌ 不要在代码中硬编码 Token
TUSHARE_TOKEN = "123456789abc" # 危险!
# ❌ 不要提交 .env 文件到 Git
git add .env # 危险!
# ❌ 不要在 commit 信息中暴露密钥
git commit -m "add token: xxx123" # 危险!
# ❌ 不要在日志中打印敏感信息
logger.info(f"Token: {token}") # 危险!✅ 应该做:
# ✅ 使用环境变量
import os
token = os.getenv("TUSHARE_TOKEN")
# ✅ 检查环境变量是否设置
if not token:
raise ValueError("TUSHARE_TOKEN environment variable not set")
# ✅ 不在日志中暴露完整密钥
logger.info(f"Using Tushare API (token: {token[:10]}...)") # 只显示前10个字符
# ✅ 在 .gitignore 中忽略所有本地配置如果你不小心提交了密钥到 GitHub:
-
立即作废旧密钥
- 登录 Tushare 账户
- 重新生成新的 API Token
-
从 Git 历史中移除
# 使用 git-filter-branch 或 BFG git filter-branch --tree-filter 'rm -f .env' HEAD git push origin --force main
-
通知维护者
- 如果是公开项目,通知其他贡献者
Q: 为什么要使用环境变量?
A: 环境变量使敏感信息与代码分离,可以安全地在不同环境中配置不同的值。
Q: .env 文件在生产环境中也要用吗?
A: 是的,但在生产环境中应该使用更安全的方式(如密钥管理系统)来管理敏感信息。
Q: 如何在 CI/CD 中安全地使用密钥?
A: 使用 GitHub Secrets 等密钥管理服务。参考:https://docs.github.com/en/actions/security-guides/encrypted-secrets
最后检查清单:
-
.env文件已添加到.gitignore -
.env文件未被提交到 Git - 使用
.env.example作为配置模板 - 环境变量正确加载
- 日志不暴露敏感信息
- 定期检查 Git 历史中是否有泄露的密钥