mcpField
W
web-security

web-security

github.com/alphaonedev安全55 次安装
代码仓库

关于 web-security

web-security 是面向 Web 应用开发和审计的技能,提供 OWASP Top 10 检查,以及安全配置、输入防护、身份验证和依赖扫描能力。

主要功能

  1. 01OWASP Top 10 扫描
  2. 02生成和配置 CSP
  3. 03管理 CORS
  4. 04XSS 和 CSRF 防护
  5. 05JWT 和会话身份验证模式
  6. 06扫描 npm 和 yarn 依赖

适用场景

  1. 01审计应用中的 OWASP 漏洞
  2. 02生成 CSP 策略
  3. 03配置允许的 CORS 来源
  4. 04检查应用依赖

安装

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

$npx skills add https://github.com/alphaonedev/openclaw-graph --skill web-security

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

详细介绍

web-security

用途

此技能可帮助开发者依据 OWASP Top 10 指南实施和审计 Web 安全措施,包括 CSP、CORS、XSS/CSRF 防护、身份验证模式和依赖扫描。其重点是保护 Web 应用免受注入攻击和未授权访问等常见漏洞的威胁。

适用场景

在开发 Web 应用、进行安全审计或部署时使用此技能。在构建 API、处理用户身份验证、配置跨域请求或扫描依赖项中的已知漏洞时应用此技能。适用于使用 Express.js 或 React 等框架的项目,也适用于集成第三方库的场景。

主要功能
  • OWASP Top 10 扫描:检测 SQL 注入和身份验证机制失效等问题;使用内置检查:openclaw web-security scan --owasp。
  • CSP 配置:生成内容安全策略响应头;例如,使用 openclaw web-security csp --policy "default-src 'self'" 设置策略。
  • CORS 管理:实施跨源资源共享;使用 openclaw web-security cors --allow "https://example.com" 进行配置。
  • XSS/CSRF 防护:提供清理函数和令牌生成;例如,在代码中注入防 CSRF 逻辑:const token = generateCSRFToken(); res.setHeader('X-CSRF-Token', token);
  • 身份验证模式:实现 JWT 或基于会话的身份验证;使用 openclaw web-security auth --check 扫描弱点。
  • 依赖扫描:分析 npm/yarn 软件包中的漏洞;使用 openclaw web-security depscan --path ./package.json 运行扫描。
使用模式

通过 OpenClaw 的 CLI 或 API 调用此技能来完成任务。扫描时提供项目路径和标志;配置时直接将输出写入代码文件。始终为身份验证设置环境变量,例如,运行命令前导出 $OPENCLAW_API_KEY。示例:将输出写入文件以便集成,例如 openclaw web-security scan --output report.json。对于代码片段,将生成的安全代码嵌入应用中;例如,在 Express 中添加 CSP 中间件:app.use((req, res, next) => { res.setHeader('Content-Security-Policy', "default-src 'self'"); next(); });

常用命令/API
  • CLI 命令:使用 openclaw web-security [subcommand] [flags]。例如,扫描项目:openclaw web-security scan --project /path/to/app --key $OPENCLAW_API_KEY。API 端点:向 /api/web-security/scan 发送 POST 请求,并附带 JSON 请求体 { "projectPath": "/path/to/app", "apiKey": "$OPENCLAW_API_KEY" }。
  • 子命令:
    • scan --owasp --verbose:运行完整的 OWASP 检查;以 JSON 格式输出漏洞。
    • csp --generate --domains example.com:生成 CSP 字符串;例如,输出:"Content-Security-Policy: default-src 'self' https://example.com"。
    • cors --set --origins "http://localhost:3000":在类似 { "origins": ["http://localhost:3000"], "methods": ["GET", "POST"] } 的配置文件中设置 CORS。
    • auth --pattern jwt:生成 JWT 验证代码;代码片段:const jwt = require('jsonwebtoken'); const verify = token => jwt.verify(token, process.env.JWT_SECRET);。
    • depscan --format npm:扫描依赖项;例如,命令:openclaw web-security depscan --path package.json --output vulnerabilities.txt。
  • API 端点:所有命令都映射到 /api/web-security/{subcommand},并要求通过请求头 Authorization: Bearer $OPENCLAW_API_KEY 进行身份验证。响应格式为 JSON,包含 { "status": "success", "data": { ... } } 等键。
集成说明

通过在构建脚本或 CI/CD 流水线中封装 OpenClaw 调用来进行集成。例如,在 GitHub Actions 工作流中添加:run: openclaw web-security scan --project . --key ${{ env.OPENCLAW_API_KEY }}。使用配置文件保存持久设置,例如,创建一个包含以下 JSON 的 .openclawrc 文件:{ "web-security": { "defaultFlags": ["--verbose"], "apiKeyEnv": "OPENCLAW_API_KEY" } }。如果与其他技能组合使用,请串接输出;例如,将 web-security scan 的结果用作“web-dev”部署技能的输入。确保将 API 密钥安全地存储在 $OPENCLAW_API_KEY 等环境变量中,切勿将其硬编码。

错误处理

通过检查退出代码和响应正文来处理错误。常见错误:如果 $OPENCLAW_API_KEY 无效,会出现身份验证失败(HTTP 401)——请检查密钥格式并修复。扫描失败(例如,“Project path not found”)会返回代码 404;请提供绝对路径来解决。为防止 XSS,如果代码片段执行失败,请捕获异常,例如:try { sanitizeInput(userInput); } catch (e) { console.error(e.message); // e.g., "Invalid input detected" }。解析 JSON 响应以获取错误详情,例如,{ "error": "Vulnerability detected", "code": 400 },然后使用修正后的标志重试。始终记录带时间戳的错误,以便调试。

具体使用示例
  1. 扫描 OWASP 漏洞:要审计 Web 应用中的注入风险,请运行:openclaw web-security scan --owasp --project /path/to/app。此命令会输出 JSON 报告;然后,通过添加如下代码修复问题:const safeQuery = db.escape(userInput); db.query(safeQuery);。预期输出:漏洞列表,例如,{ "injection": ["SQL in login endpoint"] }。
  2. 配置 CSP 以防止 XSS:要在 Express 应用中设置 CSP,请使用:openclaw web-security csp --generate --policy "script-src 'self'"。将输出集成到服务器代码中:app.use(helmet.contentSecurityPolicy({ directives: { scriptSrc: ["'self'"] } }));。这可以阻止内联脚本,降低 XSS 风险。
图谱关系
  • 与集群相关:“web-dev”(例如,共享 Web 应用构建所需的依赖项)。
  • 关联技能:“auth-management”(用于高级身份验证模式)、“vulnerability-scanning”(用于更全面的安全检查)。
  • 逆向关系:依赖“api-tools”进行端点测试;为“deployment-pipeline”提供输入,以实现安全发布。

评论

支持 Markdown