Xalgorix API参考手册:如何快速配置Bearer Token自动创建扫描并接入CI/CD流水线

发布时间:2026/10/14 16:22:00
Xalgorix API参考手册:如何快速配置Bearer Token自动创建扫描并接入CI/CD流水线
【免费下载链接】xalgorixAutonomous AI pentesting agents — real-time reconnaissance, vulnerability detection, and exploitation orchestration. Go TypeScript.项目地址https://gitcode.com/gh_mirrors/xa/xalgorix点击查看免费下载Xalgorix 是一款开源的自主 AI 渗透测试工具Autonomous AI pentesting agents内置完整的 HTTP JSON API。本文是一份面向初学者的 Xalgorix API 参考手册通过 Bearer Token 机器令牌自动化创建扫描、轮询任务状态、拉取漏洞结果并把整套流程接入 CI/CD 流水线全程无需登录仪表盘。为什么自动化要用 Bearer Token 而不是仪表盘账号Xalgorix 刻意把人和机器的认证分成两套互不相干的通道通道认证方式典型使用场景人类操作员用户名 密码登录写入浏览器 Cookie 会话在 Web 仪表盘里手动发起扫描机器客户端Authorization: Bearer token请求头后端服务、CI/CD 流水线、脚本这套设计带来三个对自动化很友好的特性互不干扰机器令牌不经过仪表盘登录限速器你的自动化脚本不会因为误触了爆破锁定而被踢下线人类登录被锁也不会挡住 API 调用无会话副作用Bearer Token 永远不会创建浏览器会话泄露的服务令牌无法被拿去操作仪表盘 UI安全存储令牌只以 SHA-256 摘要形式保存并采用常量时间比较做校验实现细节见 api_token.go。一键配置两个环境变量搞定机器令牌只需在 Xalgorix 服务进程能读到的环境变量或~/.xalgorix.env中设置令牌重启服务即可生效# 单个令牌最简单 XALGORIX_API_TOKENsk-your-long-random-string # 令牌轮换集逗号分隔新旧令牌可并存便于平滑轮换 XALGORIX_API_TOKENSsk-旧令牌,sk-新令牌配置解析位于 config.go环境变量总览可参考 README.md。几个新手容易踩的细节空值会被自动忽略不会产生空字符串令牌这种天坑多个逗号分隔的令牌会自动去重重复项不会生效两次令牌与人类登录XALGORIX_USERNAMEXALGORIX_PASSWORD_HASH完全独立两者可以并存。核心端点一用 POST /api/scan 自动创建扫描创建扫描只有一个入口POST /api/scanJSON 请求体。最小可用示例只填必填字段curl -X POST http://xalgorix-host:port/api/scan \ -H Authorization: Bearer sk-your-token \ -H Content-Type: application/json \ -d { targets: [https://staging.example.com], scan_mode: single, model: openai/gpt-5.6 }常用请求参数速查表完整字段定义见 server.go 的ScanRequest结构体参数类型说明targets数组必填待扫描目标 URL 列表scan_mode字符串single单目标 /wildcard通配子域名model字符串LLM 模型标识如openai/gpt-5.6name字符串扫描名称方便在列表中辨认instruction字符串自定义扫描指令自然语言severity_filter数组关注等级如[critical, high]phases数组选定的方法论阶段空 全部recon_mode/scan_intensity字符串active主动 /passive被动target_auth字符串目标站点认证头/Cookie登录后攻击面测试source_repo字符串源码地址启用白盒辅助分析code_scan字符串review纯代码审查 /provision本地构建后 DASTsave_only布尔true只保存配置不启动执行dispatch_id字符串调用方自定义的幂等键16–128 个 URL 安全字符读懂响应pending不等于失败成功提交后接口立即返回扫描在后台异步运行{status: pending, instance_id: a8f3...}新手最常困惑的点在这里status返回的是pending排队中不是running。扫描要等到通过资源准入内存、并发槽位才会真正开始运行instance_id是你后续轮询、下载报告的唯一凭据。dispatch_id专为 CI 场景设计重试时携带同一个dispatch_id服务端会识别出这是同一次派发重复提交会直接返回已有实例的状态如pending/running/finished而不会重复创建扫描。这是保证流水线重跑不产生僵尸扫描的关键机制。核心端点二轮询状态与拉取漏洞结果拿到instance_id后用只读端点跟踪进度均支持 Bearer Token端点方法用途/api/instancesGET全部实例概览含statuspending/running/finished/stopped/api/scansGET扫描列表支持?page?size分页size 上限 500/api/scans/{id}GET单条扫描详情状态、漏洞列表、token 消耗、阶段进度/api/scans/{id}/events?offsetlimitGET事件日志分页拉取/api/findings/summaryGET跨扫描漏洞摘要/api/queue/statusGET队列状态/api/stopPOST停止当前扫描列表接口每 5 秒缓存一次实现见 scan_list.go轮询时不必过于激进每 10–30 秒查一次/api/instances即可。扫描完成status变为finished后/api/scans/{id}中的vulns数组就是结构化漏洞结果包含severity、cvss、endpoint、remediation等字段。如果不想轮询也可以直接连扫描事件 WebSocket/ws——机器令牌对/ws同样有效实时事件流与仪表盘 Live Feed 同源。核心端点三下载 PDF 报告并配置定时任务扫描结束后用扫描 ID 下载 PDF 报告扫描 ID 与 instance_id 一致路径防穿越处理见 server.gocurl -o report.pdf \ http://xalgorix-host:port/api/report/scan_id \ -H Authorization: Bearer sk-your-token此外/api/schedules系列端点支持在服务器端配置定时扫描daily/weekly/月度等创建后还能通过POST /api/schedules/{id}/trigger手动触发实现见 schedules.go。CI 场景下更推荐由流水线直接调/api/scan把何时扫的控制权留在 CI 调度器手里。实战把 Xalgorix 接入 CI/CD 流水线下面是 CI 任务的完整编排思路适配 Gitee CI、GitHub Actions 等任意支持 curl 与 YAML 的平台只需替换主机地址与令牌变量stages: - pentest xalgorix-scan: stage: pentest variables: XALGORIX_BASE: http://xalgorix.internal:8888 XALGORIX_TOKEN: $XALGORIX_API_TOKEN # 在 CI 密钥管理中配置 script: # 1. 创建扫描幂等job 名作为 dispatch_id - | RESP$(curl -s -X POST $XALGORIX_BASE/api/scan \ -H Authorization: Bearer $XALGORIX_TOKEN \ -H Content-Type: application/json \ -d {targets: [https://staging.example.com], scan_mode: single, name: CI-$(date %F), dispatch_id: ci-pentest-$(date %Y%m%d), severity_filter: [critical, high]}) echo $RESP SCAN_ID$(echo $RESP | grep -o instance_id:[^]* | cut -d -f4) # 2. 轮询直到终态最多 6 小时 - for i in $(seq 1 120); do STATUS$(curl -s $XALGORIX_BASE/api/instances \ -H Authorization: Bearer $XALGORIX_TOKEN \ | grep -A2 \$SCAN_ID\ | grep -o status:[^]* | head -1 | cut -d -f4) echo status$STATUS case $STATUS in finished|stopped|failed) break;; esac sleep 300 done # 3. 归档漏洞数据与 PDF 报告 - curl -s $XALGORIX_BASE/api/scans/$SCAN_ID \ -H Authorization: Bearer $XALGORIX_TOKEN -o findings.json - curl -s $XALGORIX_BASE/api/report/$SCAN_ID \ -H Authorization: Bearer $XALGORIX_TOKEN -o xalgorix_report.pdf artifacts: paths: - findings.json - xalgorix_report.pdf流水线接入的三个要点令牌放 CI 密钥管理不要写进代码库需要轮换时用XALGORIX_API_TOKENS新旧并存CI 侧无感切换终态判断finished正常完成、stopped人工/看门狗停止、failed都算结束pending/running继续等待失败快速暴露targets required之类的 400 错误说明请求体写错了让 curl 带-f或直接检查响应码CI 立刻红。权限边界机器令牌不能碰哪些路由这是自动化接入前必须知道的安全边界。Bearer Token 只能访问/api/*路由和/ws扫描事件 WebSocket且以下运维级路由对机器令牌一律拒绝白名单逻辑见 api_token.go/api/settings/*—— 管理 LLM 供应商密钥与环境机密/api/auth/profiles*—— 管理认证配置文件/api/chat—— 交互式操作员控制台。换句话说泄露一个服务令牌攻击者最多能发起和查看扫描拿不到你的供应商 API Key也登不了仪表盘。常见问题快速排错症状原因与处理401 Unauthorized请求头写成Authorization: token漏了Bearer前缀必须带空格或令牌未配置/未重启服务400 targets required请求体缺targets或所有目标都是内网/本地地址被自扫描保护拦截自托管需设置XALGORIX_ALLOW_LOCAL_TARGETStrue提交后一直pending服务端资源准入未放行内存/并发上限属正常排队轮询/api/instances等待转runningprovider_profile报 400配置文件 ID 拼写错误服务端在启动前即快速失败修正 ID 后重试轮换令牌时偶发 401确认旧令牌仍在XALGORIX_API_TOKENS中且逗号分隔无多余空格两侧都生效后再移除旧值写在最后Xalgorix 的机器 API 设计非常克制一个创建端点 一组只读查询端点 WebSocket 事件流配合幂等dispatch_id就足以支撑完整的提交 → 跟踪 → 归档自动化闭环。建议按本文顺序验证先手动 curl 跑通创建与轮询再包进 CI 任务最后按需接入/ws实时推送。更多架构细节可参考 docs/ARCHITECTURE.md环境变量全集见 README.md 的配置表格。赞分享【免费下载链接】xalgorixAutonomous AI pentesting agents — real-time reconnaissance, vulnerability detection, and exploitation orchestration. Go TypeScript.项目地址https://gitcode.com/gh_mirrors/xa/xalgorix点击查看免费下载相关推荐Scrapling 入门让 Python 网络爬虫扛住页面改版与反检测Scrapling 入门让 Python 网络爬虫扛住页面改版与反检测 任务很普通抓一个商品列表页的价格字段跑起来每天看一次数据。麻烦不在选择器怎么写网页爬虫TaskView API Token实战如何为CI/CD流水线安全创建最小权限密钥TaskView API Token实战如何为CI/CD流水线安全创建最小权限密钥 TaskView 是一款自托管的项目与任务管理平台内置的 API Tok终极指南如何快速搭建Claude Code Flow自动化CI/CD流水线终极指南如何快速搭建Claude Code Flow自动化CI/CD流水线 Claude Code Flow是一款企业级AI代理编排平台支持WASM驱动的R人工智能AI Agent多智能体Agent 编排Agent 记忆工具调用代码智能体MCP 服务AI 评测创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考