T09 · Insecure Skill Coding Practices
- Location
scripts/bootstrap_admin.py:22- Finding
Privileged credentials are created with insecure defaults, stored in plaintext, and exposed in command output
- Content
View full analysis
argparse.Namespace: parser = argparse.ArgumentParser(description="初始化管理员账号并自动生成 RAGFlow API Key。") parser.add_argument("--base-url", default="http://127.0.0.1:9380", help="RAGFlow API 地址") parser.add_argument("--container-name", default="docker-ragflow-cpu-1", help="RAGFlow 容器名") parser.add_argument("--nickname", default="admin", help="管理员昵称") parser.add_argument("--email", default="admin@example.com", help="管理员邮箱") parser.add_argument("--password", default="Admin123456", help="管理员密码") parser.add_argument("--token-name", default="ragflow-skill-key", help="要创建/复用的 API Token 名称") parser.add_argument( "--env-file", default=str(default_env_file()), help="输出 .env 文件路径,默认写入技能目录下 .env", ) parser.add_argument("--json", action="store_true", dest="json_output", help="输出 JSON") return parser.parse_args() ``` ```python # scripts/bootstrap_admin.py:37-63 def run_bootstrap(args: argparse.Namespace) -> dict[str, Any]: encrypted = encrypt_password_via_docker(args.container_name, args.password) register_result = register_user(args.base_url, args.nickname, args.email, encrypted) jwt_token = login_user(args.base_url, args.email, encrypted) api_key = get_or_create_api_token(args.base_url, jwt_token, args.token_name) env_updates = { "RAGFLOW_API_URL": args.base_url.rstrip("/"), "RAGFLOW_API_KEY": api_key, "RAGFLOW_CONTAINER_NAME": args.container_name, "RAGFLOW_ADMIN_EMAIL": args.email, "RAGFLOW_ADMIN_PASSWORD": args.password, } write_env_file(Path(args.env_file), ...[truncated 4579 chars]- Remediation
View remediation
