Subsequently commited on
Commit
b884376
·
verified ·
1 Parent(s): 5ed236a

Update security-check.sh

Browse files
Files changed (1) hide show
  1. security-check.sh +13 -45
security-check.sh CHANGED
@@ -1,57 +1,25 @@
1
  #!/bin/sh
2
-
3
- # Security check - runs at startup, non-fatal, logs warnings only.
4
-
5
- PASS=0
6
  WARN=0
7
-
8
- log_ok() { echo "[security] OK: $1"; }
9
- log_warn() { echo "[security] WARN: $1"; WARN=$((WARN+1)); }
10
-
11
- # 1. Gateway token should be set and not too short
12
 
13
  TOKEN="${OPENCLAW_GATEWAY_TOKEN:-}"
14
  if [ -z "$TOKEN" ]; then
15
- log_warn "OPENCLAW_GATEWAY_TOKEN is not set - gateway is unprotected"
16
- elif [ ${#TOKEN} -lt 8 ]; then
17
- log_warn "OPENCLAW_GATEWAY_TOKEN is very short (< 8 chars), use a longer token"
 
 
18
  else
19
- log_ok "Gateway token is set (length=${#TOKEN})"
20
  fi
21
 
22
- # 2. HF_TOKEN should not be exposed as gateway token
23
-
24
- HF="${HF_TOKEN:-}"
25
- if [ -n "$HF" ] && [ "$HF" = "$TOKEN" ]; then
26
- log_warn "OPENCLAW_GATEWAY_TOKEN equals HF_TOKEN - use separate tokens"
27
  fi
28
 
29
- # 3. Config file should not contain raw API keys in plaintext paths
30
-
31
  CONFIG="${OPENCLAW_HOME:-/home/user}/.openclaw/openclaw.json"
32
- if [ -f "$CONFIG" ]; then
33
-
34
- # warn if any obvious key pattern found outside env.vars block
35
-
36
- if grep -q '"_API_KEY"' "$CONFIG" 2>/dev/null; then
37
- log_warn "openclaw.json may contain raw API keys - prefer env vars"
38
- else
39
- log_ok "openclaw.json looks clean (no raw API keys)"
40
- fi
41
- fi
42
-
43
- # 4. Warn if allowedOrigins is wildcard in production
44
-
45
- if grep -q '"allowedOrigins": \["\*"\]' "$CONFIG" 2>/dev/null; then
46
- log_warn "controlUi.allowedOrigins=[\"*\"] - consider locking to your Space URL"
47
- fi
48
-
49
- # 5. Check file permissions on sensitive files
50
-
51
- if [ -f "$CONFIG" ]; then
52
- PERMS=$(stat -c "%a" "$CONFIG" 2>/dev/null || stat -f "%A" "$CONFIG" 2>/dev/null || echo "unknown")
53
- log_ok "openclaw.json permissions: $PERMS"
54
- fi
55
-
56
- echo "[security] Check complete: $WARN warning(s)"
57
  exit 0
 
1
  #!/bin/sh
2
+ # 启动安全检查: 只打印警告, 不中断启动
 
 
 
3
  WARN=0
4
+ warn() { echo "[security] WARN: $1"; WARN=$((WARN+1)); }
5
+ ok() { echo "[security] OK: $1"; }
 
 
 
6
 
7
  TOKEN="${OPENCLAW_GATEWAY_TOKEN:-}"
8
  if [ -z "$TOKEN" ]; then
9
+ warn "OPENCLAW_GATEWAY_TOKEN 未设置 - 将沿用旧配置里的令牌(不推荐)"
10
+ elif [ "${#TOKEN}" -lt 32 ]; then
11
+ warn "OPENCLAW_GATEWAY_TOKEN 只有 ${#TOKEN} 位 - 现在登录只靠它, 请换成 32 位以上的字母数字"
12
+ elif ! printf '%s' "$TOKEN" | grep -Eq '^[A-Za-z0-9]+$'; then
13
+ warn "OPENCLAW_GATEWAY_TOKEN 含特殊字符 - 建议只用字母数字"
14
  else
15
+ ok "网关令牌长度 ${#TOKEN}, 字母数字"
16
  fi
17
 
18
+ if [ -n "${HF_TOKEN:-}" ] && [ "$HF_TOKEN" = "$TOKEN" ]; then
19
+ warn "OPENCLAW_GATEWAY_TOKEN 与 HF_TOKEN 相同 - 请分开"
 
 
 
20
  fi
21
 
 
 
22
  CONFIG="${OPENCLAW_HOME:-/home/user}/.openclaw/openclaw.json"
23
+ [ -f "$CONFIG" ] && ok "openclaw.json 权限: $(stat -c %a "$CONFIG" 2>/dev/null || echo unknown)"
24
+ echo "[security] 检查完成: $WARN 条警告"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
25
  exit 0