Scert/backend/internal/cli/secret_input_common.go
xuans 0788b6e41d 完成Linux敏感输入安全整改
拒绝通过命令行参数和管道传入SMTP敏感值,改用Linux交互式终端隐藏输入,并增加伪终端回显关闭、状态恢复和首尾空格保留测试。
2026-10-05 13:06:34 +08:00

22 lines
446 B
Go

package cli
import (
"errors"
"fmt"
"strings"
)
const maxSecretInputBytes = 4096
func parseSecretInput(line string) (string, error) {
line = strings.TrimSuffix(line, "\n")
line = strings.TrimSuffix(line, "\r")
if line == "" {
return "", errors.New("SMTP 密码不能为空")
}
if len([]byte(line)) > maxSecretInputBytes {
return "", fmt.Errorf("SMTP 密码长度不能超过 %d 字节", maxSecretInputBytes)
}
return line, nil
}