SuperAPI AI 工具集

astrofy-security

安全与审计

查看项目

更新于 10-16 10:11

技能介绍

用途

astrofy-security 是一个面向 Astro 项目的安全审查技能,重点在于审查执行边界(fronteiras de execução)。它帮助定位外部输入及其消费者,检查 HTML 序列化、set:html 的使用以及 MDX 的来源,排查公开配置中的凭据和关键依赖,并对已证实的问題施加限定范围内的修复,同时记录审查的覆盖范围。

主要能力

  • 读取并审查外部输入、set:html、MDX、脚本以及客户端/服务端边界。
  • 当路径与示例不同时,使用 .astrofy/config/paths.json 中定义的路径。
  • 在应用在线文档中的 API 之前,先核对 lockfile 和 node_modules 中安装的版本。
  • 追踪入口直到其渲染点,区分文本转义、URL 允许和 HTML 净化。
  • 仅记录不含凭据的样本。
  • 定位外部输入及其消费者,检查 HTML 序列化、set:html 用法和 MDX 来源。
  • 在公开配置中查找凭据,并检查相关依赖。
  • 修复已证实的发生点,并记录审查的覆盖范围。

使用方式

在接受 HTML、URL 或外部 MDX 内容之前,按以下特定顺序构建 Astro 7 的执行边界表(输入、转换、目标):

  1. 将每个外部输入追踪到文本、属性、set:html、JSON-LD 或 MDX。
  2. 根据目标对文本进行转义、验证 URL 并净化 HTML。
  3. 将机密与 PUBLIC_ 值分开,并确认客户端 bundle。
  4. 演练标签、属性、协议和脚本闭合的 payload。
  5. 在无会话以及无资源权限用户的情况下调用端点和 Actions,检查基于 cookie 认证的变更操作的 CSRF 保护。
  6. 在刷新缓存后,用两个会话与匿名访客对比私有响应,检查生成的 HTML 和资源中是否有数据越过服务端边界。

对现有实现的变更:修复受影响的消费者并保持契约有效。在检查期间不要编译未知的 MDX,也不要导入可执行配置来列出字段。

验证标准:包含脚本闭合的内容不应执行代码;来自外部的 HTML 必须经过所采用的净化策略。修复需具备可复现的用例。报告不暴露凭据,也不声称通过自动分析完成了完整审计。

可用命令示例:

astrofy check --rule config.secrets

在实现之前查阅该领域的 API 和规则,在核对输出时查阅验证场景。

适用场景

  • 需要对 Astro 项目进行安全审查,尤其是涉及外部 HTML、URL 或 MDX 内容渲染时。
  • 需要排查 set:html 用法、HTML 序列化、MDX 来源或客户端/服务端边界风险时。
  • 需要检查公开配置和客户端 bundle 中是否泄漏机密信息时。
  • 需要验证端点和 Actions 在无会话或无权限用户下的访问控制,以及基于 cookie 的变更操作的 CSRF 保护时。
  • 需要检查缓存刷新后私有数据是否越过服务端边界时。

限制

  • 报告不暴露凭据,也不声明通过自动分析完成了完整审计。
  • 在检查期间不得编译未知的 MDX,也不得导入可执行配置来列出字段。
  • 修复应限定在已证实的问题范围内,并保持现有契约有效。
  • 修复需附带可复现的用例。
  • 关于定价、付费方式、支持平台或具体效果等信息,资料暂未提供。