refactor: 删 trimAll + 修 isSensitive,统一用 stdlib
两处自实现 / 半成品:
1. controller/settings.go trimAll (11 行)
- 自己写循环 trim 4 个 ASCII 字符 (' ' \t \n \r)
- 等价于 strings.TrimSpace (后者 trim 所有 Unicode 空白)
- strings 包已 import (其他代码用着), 没引用代价
- 改: 7 个调用点全替, 删函数定义
2. cmd/dumpdb/main.go isSensitive (13 行)
- 自实现 strings.Contains 循环, 没调 strings.ToLower
- 变量名叫 lowK 但实际从未小写化
- Bug: API_KEY / Auth_Token 这类大写 key 不会被判为敏感, 漏打码
- 修: 用 strings.ToLower + strings.Contains, 大小写不敏感
- 顺手加 strings import
收益:
- 行数: +15 / -27 (净删 12 行)
- 一致性: 看到 strings.TrimSpace / strings.Contains 就懂, 不必读自实现
- 安全: 大写 key 之前漏打码, 修了
e2e 验证 (verifydbsens 临时脚本, 已删):
api_key -> sensitive ✓
auth_key -> sensitive ✓
API_KEY_UPPER -> sensitive ✓ (修前漏)
Auth_Token_Mixed -> sensitive ✓ (修前漏)
default_speaker -> sensitive ✓
default_resource_id -> not sensitive ✓
note -> not sensitive ✓
build + go test ./... 全绿
未 push (待用户)
This commit is contained in:
+8
-8
@@ -11,6 +11,7 @@ import (
|
||||
"database/sql"
|
||||
"fmt"
|
||||
"os"
|
||||
"strings"
|
||||
|
||||
_ "modernc.org/sqlite"
|
||||
)
|
||||
@@ -116,14 +117,13 @@ func main() {
|
||||
}
|
||||
|
||||
func isSensitive(key string) bool {
|
||||
lowK := key
|
||||
// 简单 contains (不引 strings 包保持精简)
|
||||
markers := []string{"key", "token", "speaker"}
|
||||
for _, m := range markers {
|
||||
for i := 0; i+len(m) <= len(lowK); i++ {
|
||||
if lowK[i:i+len(m)] == m {
|
||||
return true
|
||||
}
|
||||
// 标记 key 名包含 "key" / "token" / "speaker" 即视为敏感,值打码。
|
||||
// 大小写不敏感: API_KEY / Auth_Token 等大写 key 也会被命中
|
||||
// (避免漏打码)。
|
||||
low := strings.ToLower(key)
|
||||
for _, m := range []string{"key", "token", "speaker"} {
|
||||
if strings.Contains(low, m) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
|
||||
Reference in New Issue
Block a user