用途:对已部署上线的 Power Pages 站点执行安全扫描,拉取最新扫描报告,并用通俗语言汇总发现的问题。扫描针对线上运行站点,而非本地源代码,且为只读操作,不会启用 WAF、删除扫描结果或更改站点配置。
主要能力:
- 检查扫描状态(进行中/空闲),判断是否已有完成的报告。
- 启动扫描并轮询等待完成;小站点数分钟完成,大站点可能需要数小时。
- 获取并转换报告,按严重程度汇总发现项,并给出与上次扫描相比的变化。
- 生成 HTML 报告,渲染到项目 docs 目录。
- 将问题按类型路由到后续技能:头部/Cookie、防火墙、权限、认证等,代码级问题无对应技能则建议手动修复。
使用方式:前置步骤定位项目、确认登录、解析站点标识。.powerpages-site/website.yml 存的是网站记录 id 而非门户 id,各脚本需要 --portalId,需先通过 website.js --websiteId 解析;不可用名称解析,因为名称在同一环境内可能重复。随后检查状态、选择操作、运行扫描、抓取并汇总。关键命令示例:node "${PLUGIN_ROOT}/scripts/website.js" --websiteId "<WEBSITE_ID>",以及 start-deep-scan.js、poll-deep-scan.js、get-latest-report.js、transform-report.js。轮询建议用 run_in_background 后台运行,默认超时 20 分钟,大站点可增大 --timeoutMinutes。
适用场景:已部署 Power Pages 站点的安全巡检、上线前后检查、定期复查。
限制:同一站点同时只能有一个扫描,重复启动返回 Z003(脚本报 already-running);服务可能对重复扫描限流,需等待后重试;新站点或扫描中的站点无完成报告,返回 empty;报告缺 Rules 数组时返回 malformed,建议重扫。解析返回 null 表示站点未部署或登录配置指向其他环境。与用户交互须使用通俗语言,不应对用户使用技术术语。详细脚本参数、响应结构与错误目录见 references/commands.md 与 references/scan-reference.md。