mcpField
S
spider-weave

spider-weave

github.com/autumnsgrove安全670 次安装4 天前更新
代码仓库

关于 spider-weave

用于在 Web 应用中实现认证的分阶段技能,指导从设计到测试和收尾检查。内容涵盖会话、OAuth 2.0 与 PKCE、路由保护及安全加固。

主要功能

  1. 01选择认证模式并搭建项目结构
  2. 02OAuth 登录与回调流程
  3. 03会话管理与路由保护
  4. 04RBAC、CSRF、安全头与限流
  5. 05认证和安全测试
  6. 06集成检查清单与事件日志

适用场景

  1. 01添加 PKCE OAuth 登录
  2. 02保护路由并执行角色限制
  3. 03加固会话与认证端点
  4. 04测试认证流程和边界情况

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/autumnsgrove/lattice --skill spider-weave

安装后在 Claude Code 中输入/spider-weave确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
heartwood-integration.md
oauth-pkce-flow.md
route-protection.md
security-headers.md
session-management.md

详细介绍

Spider Weave

蜘蛛不会急于求成。它一次只织一根丝线,每次都仔细锚定后再继续下一根。蛛网自然地生长——先织出放射状丝线,再织螺旋线,并逐一测试每个连接点的强度。完成后,蛛网能捕捉重要之物,同时让风穿过。以这种方式织成的身份验证结构牢固、可靠,且结构优美。

何时启用

  • 用户要求“添加身份验证”或“设置身份验证”
  • 用户说“保护此路由”或“添加登录”
  • 用户调用 /spider-weave 或提及 spider/auth
  • 集成 OAuth(Google、GitHub 等)
  • 设置会话管理
  • 保护 API 路由
  • 添加基于角色的访问控制(RBAC)
  • 实现 PKCE 流程
  • 连接到 Heartwood(GroveAuth)

搭配使用: 使用 raccoon-audit 进行安全审查,使用 beaver-build 测试身份验证


编织过程

SPIN --> CONNECT --> SECURE --> TEST --> BIND
  |         |          |          |        |
Create    Link       Harden    Verify   Lock In
Threads  Strands     Knots      Web    Security
阶段 1:编织

蜘蛛织出第一根丝线,仔细地将它锚定在框架的一角……

创建基础身份验证结构。选择一种模式,搭建文件框架,定义架构,并在编写任何逻辑之前配置环境变量。

  • 根据应用类型和用户需求选择身份验证模式:Session、JWT、OAuth 2.0、PKCE 或 API Keys
  • 搭建 src/lib/auth/,包含 index.ts、types.ts、session.ts、middleware.ts、pkce.ts、client.ts
  • 在数据库架构中定义 users 和 sessions 表
  • 设置所需的环境变量:client IDs、secrets、authorize/token/userinfo URLs、redirect URI、session secret

参考: 加载 references/oauth-pkce-flow.md,查看 PKCE 设置代码、数据库架构、环境变量列表和完整文件结构


阶段 2:连接

丝线彼此相连,蛛网在框架上逐渐成形……

连接身份验证系统各部分:实现 OAuth 登录重定向、回调处理程序、用户插入或更新以及会话创建。然后配置客户端身份验证状态存储。

  • 实现登录路由:生成 PKCE verifier + challenge,设置 cookies,并重定向到提供方
  • 实现回调路由:验证 state,交换 code 以获取 tokens,获取 userinfo,插入或更新用户,创建会话,并清理 PKCE cookies
  • 构建会话创建(createSession)、验证(validateSession)和失效处理(invalidateSession)
  • 设置客户端 auth 状态存储,并使用 loadUser() 在 Svelte 中实现响应式身份验证状态

参考: 加载 references/oauth-pkce-flow.md,查看完整的登录和回调路由实现;加载 references/session-management.md,查看会话函数和身份验证状态存储


阶段 3:加固

蜘蛛测试每个结点,收紧松动之处,剪去不该存在的部分……

在将身份验证系统用于用户之前,先加固它。添加路由保护、安全标头、CSRF 验证和速率限制。

  • 在 hooks.server.ts 中实现 requireAuth() 中间件以验证会话
  • 为 RBAC 实现 requireRole(allowedRoles)——未经授权时返回 403
  • 为每个响应设置安全标头:X-Frame-Options、X-Content-Type-Options、Referrer-Policy、Content-Security-Policy
  • 为会改变状态的端点添加 CSRF 来源验证
  • 添加速率限制:每个 IP 每 15 分钟最多尝试 5 次,适用于身份验证端点

参考: 加载 references/route-protection.md,查看中间件代码和 RBAC 模式;加载 references/security-headers.md,查看标头、CSRF、速率限制和 Cloudflare 边缘规则


阶段 4:测试

蜘蛛拨动丝线,确认每根丝线都以正确的频率振动……

全面测试身份验证,覆盖正常流程、安全边界情况和故障模式。自动化测试可捕获回归问题;安全测试可验证这些结是否牢固。

  • 测试完整的 OAuth 流程:带有 PKCE challenge 的重定向、回调处理、会话创建
  • 测试路由保护:未通过身份验证时重定向、通过身份验证后访问、角色限制
  • 测试安全属性:拒绝 CSRF 状态、Cookie 安全属性、防止会话固定
  • 覆盖故障模式:会话过期、无效代码、OAuth 权限被拒绝

**参考:**加载 references/oauth-pkce-flow.md,查看 OAuth 流程测试;加载 references/route-protection.md,查看路由保护测试套件


阶段 5:收尾

网络已经织成,每根丝线都紧密相连,整体比丝线之和更加牢固……

完成并锁定身份验证。优化用户体验、配置监控,并生成完成报告。

  • 核对集成检查清单:登录、登出、受保护路由、会话过期、错误处理、速率限制、CSRF、标头、Cookie
  • 为登录界面添加加载和错误状态,并正确设置 aria-busy 和 role="alert" 属性
  • 配置身份验证事件日志(userId、provider、IP——绝不记录令牌或密码)
  • 对可疑活动发出警报(同一标识符有 10 次以上失败尝试)
  • 生成完成报告:提供方、流程类型、创建的文件、已确认的安全功能、测试数量

**参考:**加载 references/session-management.md,查看完整的集成检查清单、登录界面代码片段、监控模式和完成报告模板。加载 references/heartwood-integration.md,查看 Grove 专属的登出流程和角色分配。


参考路由表

阶段参考加载时机
SPINreferences/oauth-pkce-flow.md始终加载——基础代码位于此处
CONNECTreferences/oauth-pkce-flow.md + references/session-management.md实现登录/回调/会话时
SECUREreferences/route-protection.md + references/security-headers.md添加中间件、标头、速率限制时
TESTreferences/oauth-pkce-flow.md + references/route-protection.md编写身份验证和路由测试时
BINDreferences/session-management.md + references/heartwood-integration.md完成收尾、日志记录和报告时
Grove/Heartwoodreferences/heartwood-integration.md进行任何 Grove 生态系统集成时

蜘蛛规则

耐心

一次织一根丝线。不要急着一次连接所有内容。添加下一根丝线之前,必须先确保当前丝线安全可靠。

精准

身份验证中的小错误可能造成严重后果。核实每次重定向,检查每个令牌,验证每个会话。

完整

有漏洞的网什么也捕不到。测试错误路径、边界情况和故障模式。安全性只取决于最薄弱的那根丝线。

沟通

使用编织隐喻:

  • “正在纺织丝线……”(建立基础)
  • “正在连接丝线……”(关联组件)
  • “正在测试绳结……”(强化安全性)
  • “网结牢固……”(验证完成)

反模式

蜘蛛绝不会:

  • 以明文形式存储密码(绝不)
  • 在 OAuth 流程中跳过 PKCE
  • 不经验证就信任用户输入
  • 在配置中保留默认密钥
  • 忽略会话过期
  • 记录敏感数据(令牌、密码)
  • 不经验证就反射 redirect_uri 或 next 参数(开放重定向)
  • 通过 OAuth 声明分配管理员角色(只能手动分配数据库角色)

编织示例

用户:“添加 GitHub OAuth 登录”

Spider 流程:

  1. SPIN — “在 GitHub 中创建 OAuth 应用,生成客户端凭据,设置 PKCE 实用工具,创建认证端点结构”

  2. CONNECT — “实现 /auth/github/login 重定向、/auth/github/callback 处理程序、用户插入或更新逻辑、会话创建”

  3. SECURE — “添加 CSRF 状态验证、安全的 Cookie 设置、对认证端点进行速率限制,为新用户分配角色”

  4. TEST — “测试 OAuth 流程、回调处理、会话创建、受保护路由访问,以及错误情况(权限被拒绝)”

  5. BIND — “在 UI 中添加登录按钮、错误状态处理、加载状态、文档和监控”


快速决策指南

情况方案
简单应用,内部用户基于会话的认证
公共应用,社交登录OAuth 2.0 + PKCE
面向移动端/SPA 的 API带刷新令牌的 JWT
服务间通信使用 IP 允许列表的 API 密钥
Grove 生态系统Heartwood 集成(加载 references/heartwood-integration.md)

与其他技能集成

编织之前:

  • eagle-architect — 用于认证系统设计决策
  • swan-design — 用于认证流程规范

编织期间:

  • elephant-build — 用于多文件认证实现
  • raccoon-audit — 用于安全审查

编织之后:

  • beaver-build — 用于认证测试
  • turtle-harden — 用于超越 Web 范畴的纵深防御加固
  • deer-sense — 用于登录 UI 的无障碍审查

编织精良的蛛网能拦住入侵者,同时让朋友顺利通过。

评论

支持 Markdown