| 12345678910111213141516171819202122232425262728293031323334353637 |
- #!/bin/sh
- # check_frontend_secrets.sh —— 红线自检(验收第 8 项)。
- # 两种口径都扫:
- # 1) 只扫浏览器会加载的文件(index.html + js/ + css/)里的"凭据名"
- # 2) 扫整个交付目录的"文本内容"(含 tools/、docs/、README),确认没有把密钥值写进任何文件
- # 运行时若设置了 PARSE_MASTER_KEY,还会用它的实际值做一次全文搜索。
- set -u
- cd "$(dirname "$0")/.." || exit 1
- PAT='masterkey|master-key|cc84[0-9a-f]{6,}|PARSE_MASTER_KEY'
- fail=0
- echo "① 前端加载文件里的凭据名:"
- if grep -rniE "$PAT" index.html js css; then
- echo " ✗ 前端文件出现凭据名"; fail=1
- else
- echo " ✓ 无命中(只出现公开的 App ID:FKieRbIoGt_main)"
- fi
- echo "② 整个目录的文本内容里是否出现真实密钥值:"
- if [ -n "${PARSE_MASTER_KEY:-}" ]; then
- if grep -rqF -- "$PARSE_MASTER_KEY" . 2>/dev/null; then
- echo " ✗ 发现密钥值"; fail=1
- else
- echo " ✓ 未发现(密钥只在运行时从环境变量读取)"
- fi
- else
- echo " - 未设置 PARSE_MASTER_KEY,跳过实际值搜索"
- fi
- echo "③ tools/ 与 README 只允许出现变量名,不允许出现密钥:"
- if grep -rnE 'cc84[0-9a-f]{6,}' . 2>/dev/null; then
- echo " ✗ 出现疑似密钥串"; fail=1
- else
- echo " ✓ 无匹配 cc84 开头的串"
- fi
- exit $fail
|