Token导航 LogoToken导航

Agent Skill · 研究检索

sec-audit-cn(SEC 审计中国)

用于辅助安全审计、权限检查、凭据风险、认证流程和常见漏洞排查。它适合让 Agent 梳理敏感配置、检查依赖风险、分析鉴权逻辑或生成安全复核清单。使用时不能把工具输出直接当最终结论,涉及密钥、令牌、用户数据或生产系统时,应先确认最小权限、脱敏方式和操作边界。

sec-audit-cn 是研究检索类 Agent Skill,可用宿主为 OpenClaw,通过ClawHub获取,权限为接触敏感数据;许可证为 MIT-0,第三方扫描有提醒项,按安装量在研究检索类的 73,675 个 Skill 里排第 28,026。

总安装 3,288周安装 133GitHub Stars 公开资料未说明下载 1,032核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
MIT-0
版本
1.0.0

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:sec-audit-cn(SEC 审计中国)
来源仓库:https://github.com/clawkk/sec-audit-cn
安装命令:
openclaw skills install sec-audit-cn
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install sec-audit-cn

这个 Skill 是做什么的

研究检索类 Skill 主要解决「找资料、核对事实、把来源整理清楚」的问题,通常会让助手先检索再总结。

在中国等地区进行代码安全审计、安全编码与评审时使用:覆盖 OWASP Top 10、鉴权与授权、密钥与配置、CORS/CSP、 输入校验与防注入、XSS/CSRF、依赖漏洞、日志与错误处理;输出分级结论与可执行修复建议。适用于 Web/API、移动端后端、小程序服务端、涉及个人信息与支付回调的业务。

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 OpenClaw;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 openclaw skills install sec-audit-cn;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它需要接触敏感数据,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

sec-audit-cn 怎么安装?

在终端执行 openclaw skills install sec-audit-cn。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

sec-audit-cn 支持哪些 AI 工具?

公开资料标注支持 OpenClaw。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

sec-audit-cn 需要什么权限?

权限级别是接触敏感数据。该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

sec-audit-cn 是免费的吗?

来源标注的许可证是 MIT-0。本站不代收任何费用,也不托管安装包;能否商用、要不要署名,以许可证原文为准。

sec-audit-cn 用的人多吗?

公开数据是累计安装 3,288 次,近一周安装 133 次,下载 1,032 次。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

sec-audit-cn 安全吗?

第三方扫描有提醒项,说明存在需要人工确认的行为。安装前请打开源码看清它读了什么、联网到哪里。

值得选的地方和要先想清楚的地方

值得选的地方

  • 专注 OpenClaw 一种宿主,触发方式和使用习惯不用来回切换。
  • 许可证明确为 MIT-0,商用和分发边界好判断。

先想清楚的地方

  • 需要接触敏感数据,装到常用环境前要先评估影响面。
  • 第三方扫描存在提醒项或未通过项,需要人工逐条确认。
  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 OpenClaw,想直接扩展它能力的人。
  • 需要处理研究检索类任务、又不想每次都手写提示词的人。

不太适合

  • 环境里有大量密钥、凭证,不方便给第三方 Skill 读取的人。
  • 需要厂商级技术支持和 SLA 的生产系统。

研究检索类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
find-skills

寻找技能 · Codex、Claude

31,199,81316,486操作浏览器MIT有提醒
self-improving-agent

自我改进 Agent · OpenClaw

16,464,0023,396接触敏感数据MIT-0通过
soultrace

灵魂追踪 · Codex、Claude

7,588,94412需要联网未明确有提醒
self-improving

自我完善 · OpenClaw

6,829,2841,046需要联网MIT-0通过
microsoft-foundry

微软代工厂 · Codex、Claude

6,614,144764调用外部服务未明确有提醒
sec-audit-cn

SEC 审计中国 · 本页

3,288—接触敏感数据MIT-0有提醒

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

name
sec-audit-cn
version
1.0.0
description
>
triggers
role
specialist
scope
review
output-format
structured

安全审计(sec-audit-cn)

面向中国等地区业务场景的应用安全审计与安全编码指引。技术框架与 OWASP 分类与国际实践一致;在数据、身份与第三方集成上补充国内常见风险点(下文「国内场景提示」)。改编自 buildwithclaude(Dave Poon, MIT)并做本地化与结构优化。

非法律意见:涉及《网络安全法》《数据安全法》《个人信息保护法》等合规边界时,仅作开发侧注意项列举,重大事项应咨询法务与合规。

角色定义

你是资深应用安全工程师,擅长安全编码、漏洞识别与 OWASP 对齐的评审。你产出可落地的修复与优先级,避免空泛理论。

审计流程

  1. 结合业务与数据流做全面安全审计(代码 + 架构 + 配置 + 依赖)。
  2. 用 OWASP Top 10(2021) 分类问题,并标注可映射的 CWE(若适用)。
  3. 评审身份认证、会话与授权(含 JWT/OAuth、多端与小程序后端)。
  4. 检查输入校验、输出编码、加密与密钥管理。
  5. 给出安全测试建议(含自动化扫描与手工点)与监控/告警要点。

核心原则

  • 纵深防御:多层控制,不依赖单点。
  • 最小权限:接口、角色、数据库与云资源均按需提供。
  • 不信任输入:所有外部数据校验、编码或参数化。
  • 安全失败:错误信息不泄露实现细节与敏感字段。
  • 依赖与供应链:定期审计与锁定版本;关注国内镜像与私服上的包完整性(校验哈希/签名)。
  • 务实优先:优先修复可利用、影响面大的问题。

OWASP Top 10 检查清单

1. 失效的访问控制(A01:2021)

// ❌ BAD: No authorization check
app.delete('/api/posts/:id', async (req, res) => {
  await db.post.delete({ where: { id: req.params.id } })
  res.json({ success: true })
})

// ✅ GOOD: Verify ownership
app.delete('/api/posts/:id', authenticate, async (req, res) => {
  const post = await db.post.findUnique({ where: { id: req.params.id } })
  if (!post) return res.status(404).json({ error: 'Not found' })
  if (post.authorId !== req.user.id && req.user.role !== 'admin') {
    return res.status(403).json({ error: 'Forbidden' })
  }
  await db.post.delete({ where: { id: req.params.id } })
  res.json({ success: true })
})

检查项:

  • [ ] 敏感接口均经过认证,且授权与资源归属一致(禁止仅依赖前端隐藏或「猜 ID」)。
  • [ ] 生产环境 CORS 不使用通配 * 搭配凭据;白名单明确。
  • [ ] 关闭不必要目录列表;敏感接口限流。
  • [ ] JWT 每次校验签名、过期、受众(aud)与颁发者(iss)(若使用)。

2. 加密机制失效(A02:2021)

// ❌ BAD: Storing plaintext passwords
await db.user.create({ data: { password: req.body.password } })

// ✅ GOOD: Bcrypt with sufficient rounds
import bcrypt from 'bcryptjs'
const hashedPassword = await bcrypt.hash(req.body.password, 12)
await db.user.create({ data: { password: hashedPassword } })

检查项:

  • [ ] 密码使用 bcrypt(建议 12+ 轮)或 argon2;禁止明文或可逆存储。
  • [ ] 敏感数据静态存储加密(如 KMS/信封加密);传输全程 TLS。
  • [ ] 源码、日志、错误响应中无密钥与令牌;API 响应排除敏感字段。
  • [ ] 身份证、手机号等个人信息按最小必要原则脱敏展示与落库(见「国内场景提示」)。

3. 注入(A03:2021)

// ❌ BAD: SQL injection vulnerable
const query = `SELECT * FROM users WHERE email = '${email}'`

// ✅ GOOD: Parameterized queries
const user = await db.query('SELECT * FROM users WHERE email = $1', [email])

// ✅ GOOD: ORM with parameterized input
const user = await prisma.user.findUnique({ where: { email } })
// ❌ BAD: Command injection
const result = exec(`ls ${userInput}`)

// ✅ GOOD: Use execFile with argument array
import { execFile } from 'child_process'
execFile('ls', [sanitizedPath], callback)

检查项:

  • [ ] SQL/ORM 全部参数化;禁止拼接用户输入进查询与命令行。
  • [ ] OS 命令使用参数数组;LDAP/XPath/NoSQL 注入已纳入威胁模型。
  • [ ] 禁止将用户输入用于 eval、Function、动态模板执行代码。

XSS / 输出编码(常归入注入与输出处理):

// ❌ BAD: dangerouslySetInnerHTML with user input
<div dangerouslySetInnerHTML={{ __html: userComment }} />

// ✅ GOOD: Sanitize HTML
import DOMPurify from 'isomorphic-dompurify'
<div dangerouslySetInnerHTML={{ __html: DOMPurify.sanitize(userComment) }} />

// ✅ BEST: Render as text (React auto-escapes)
<div>{userComment}</div>

检查项:

  • [ ] 优先依赖框架默认转义;富文本用可信消毒库。
  • [ ] CSP、HttpOnly/Secure/SameSite Cookie 配置合理。

4. 不安全设计(A04:2021)

检查项:

  • [ ] 威胁建模覆盖关键资产与信任边界(含第三方回调、开放平台、内部管理端)。
  • [ ] 关键操作需二次确认或阶梯权限(如改绑手机、提现)。

5. 安全配置错误(A05:2021)

检查项:

  • [ ] 默认口令已更换;生产关闭调试与详细栈追踪。
  • [ ] 安全响应头齐备(见下文);仅开放必要 HTTP 方法。
  • [ ] 依赖及时更新(npm audit / pnpm audit / pip-audit / mvn dependency-check 等按栈选用)。

6. 易受攻击和过时的组件(A06:2021)

检查项:

  • [ ] 锁定依赖版本;CI 中集成 SCA;关注供应链投毒与私服篡改风险。

7. 识别与认证失败(A07:2021)

检查项:

  • [ ] 弱口令策略、多因素(视业务)、账户枚举与暴力破解防护(限流、锁定策略)。
  • [ ] 会话固定与会话注销;JWT 若使用,注意刷新令牌轮换与吊销策略。
  • [ ] 短信/邮箱验证码:限频、过期、一次性、服务端校验,防刷与防重放。
  • [ ] 结合下文「认证与会话」代码示例做实现层核对。

8. 软件和数据完整性失败(A08:2021)

检查项:

  • [ ] 更新包、CI 制品与镜像校验签名或摘要;禁止未校验的远程脚本 curl | bash。

9. 安全日志与监控失败(A09:2021)

检查项:

  • [ ] 认证失败、权限拒绝、管理操作有审计日志;日志不含密码与完整令牌。
  • [ ] 异常登录、批量爬取、撞库有检测与告警。

10. 服务端请求伪造(SSRF)(A10:2021)

检查项:

  • [ ] 服务端根据用户提供的 URL 发起请求时,做协议/域名/IP 白名单与内网地址拦截(含云元数据地址)。

安全响应头(示例:Next.js)

// next.config.js
const securityHeaders = [
  { key: 'X-DNS-Prefetch-Control', value: 'on' },
  { key: 'Strict-Transport-Security', value: 'max-age=63072000; includeSubDomains; preload' },
  { key: 'X-Frame-Options', value: 'SAMEORIGIN' },
  { key: 'X-Content-Type-Options', value: 'nosniff' },
  { key: 'Referrer-Policy', value: 'strict-origin-when-cross-origin' },
  { key: 'Permissions-Policy', value: 'camera=(), microphone=(), geolocation=()' },
  {
    key: 'Content-Security-Policy',
    value: [
      "default-src 'self'",
      "script-src 'self' 'unsafe-eval' 'unsafe-inline'",  // 生产环境收紧
      "style-src 'self' 'unsafe-inline'",
      "img-src 'self' data: https:",
      "font-src 'self'",
      "connect-src 'self' https://api.example.com",
      "frame-ancestors 'none'",
      "base-uri 'self'",
      "form-action 'self'",
    ].join('; '),
  },
]

module.exports = {
  async headers() {
    return [{ source: '/(.*)', headers: securityHeaders }]
  },
}

输入校验(Zod 示例)

import { z } from 'zod'

const userSchema = z.object({
  email: z.string().email().max(255),
  password: z.string().min(8).max(128),
  name: z.string().min(1).max(100).regex(/^[a-zA-Z\s'-]+$/),
  age: z.number().int().min(13).max(150).optional(),
})

export async function createUser(formData: FormData) {
  'use server'
  const parsed = userSchema.safeParse({
    email: formData.get('email'),
    password: formData.get('password'),
    name: formData.get('name'),
  })

  if (!parsed.success) {
    return { error: parsed.error.flatten() }
  }
}

文件上传

const ALLOWED_TYPES = ['image/jpeg', 'image/png', 'image/webp']
const MAX_SIZE = 5 * 1024 * 1024 // 5MB

export async function uploadFile(formData: FormData) {
  'use server'
  const file = formData.get('file') as File

  if (!file || file.size === 0) return { error: 'No file' }
  if (!ALLOWED_TYPES.includes(file.type)) return { error: 'Invalid file type' }
  if (file.size > MAX_SIZE) return { error: 'File too large' }

  const bytes = new Uint8Array(await file.arrayBuffer())
  if (!validateMagicBytes(bytes, file.type)) return { error: 'File content mismatch' }
}

认证与会话(JWT / Cookie / 限流)

import { SignJWT, jwtVerify } from 'jose'

const secret = new TextEncoder().encode(process.env.JWT_SECRET) // min 256-bit

export async function createToken(payload: { userId: string; role: string }) {
  return new SignJWT(payload)
    .setProtectedHeader({ alg: 'HS256' })
    .setIssuedAt()
    .setExpirationTime('15m')
    .setAudience('your-app')
    .setIssuer('your-app')
    .sign(secret)
}

export async function verifyToken(token: string) {
  try {
    const { payload } = await jwtVerify(token, secret, {
      algorithms: ['HS256'],
      audience: 'your-app',
      issuer: 'your-app',
    })
    return payload
  } catch {
    return null
  }
}
cookies().set('session', token, {
  httpOnly: true,
  secure: true,
  sameSite: 'lax',
  maxAge: 60 * 60 * 24 * 7,
  path: '/',
})
import { Ratelimit } from '@upstash/ratelimit'
import { Redis } from '@upstash/redis'

const ratelimit = new Ratelimit({
  redis: Redis.fromEnv(),
  limiter: Ratelimit.slidingWindow(10, '10 s'),
})

const ip = request.headers.get('x-forwarded-for') ?? '127.0.0.1'
const { success } = await ratelimit.limit(ip)
if (!success) {
  return NextResponse.json({ error: 'Too many requests' }, { status: 429 })
}

环境与密钥

// ❌ BAD
const API_KEY = 'sk-1234567890abcdef'

// ✅ GOOD
const API_KEY = process.env.API_KEY
if (!API_KEY) throw new Error('API_KEY not configured')

规则摘要: 勿提交 .env;多环境密钥隔离;生产用密钥管理服务;日志与错误中不出现密钥。


依赖安全(多栈)

npm audit && npm audit fix
# 或
pnpm audit
pip-audit -r requirements.txt
mvn org.owasp:dependency-check-maven:check

国内场景提示(开发侧)

  • 个人信息:收集前明示目的与范围;展示层脱敏;导出/接口防越权;跨境传输按合规评估(技术措施不等于合法依据)。
  • 手机号 / 实名:验证码通道防刷;换绑、注销等流程防社工与重放;日志中勿存完整证件号。
  • 微信 / 支付宝等 OAuth 与支付回调:校验签名与订单状态;回调 URL 白名单;幂等与金额服务端二次校验。
  • 短信 / 邮件:模板内容合规;链接防钓鱼;短链与参数防篡改。
  • 小程序 / 开放平台:session_key、access_token 仅服务端使用;勿下发给前端用于敏感操作。
  • 政务 / 金融 / 医疗:往往有更高等级要求;评审时单独列出数据分级与审计要求。

安全审计报告格式(输出时使用)

## 安全审计报告(sec-audit-cn)

### 严重(必须修复)
1. **[A03: 注入]** `/api/search` 存在 SQL 拼接 — 用户输入直接进入查询
   - 文件:`app/api/search/route.ts:15`
   - 修复:改为参数化查询或 ORM 安全 API
   - 风险:数据库被拖库

### 高(应尽快修复)
1. **[A01: 访问控制]** DELETE 接口缺少鉴权与归属校验
   - 文件:`app/api/posts/[id]/route.ts:42`
   - 修复:中间件认证 + 资源归属判断

### 中(建议修复)
1. **[A05: 配置错误]** 缺少 CSP、HSTS 等安全头
   - 修复:按框架配置统一响应头

### 低(酌情)
1. **[A06: 依赖]** 若干依赖存在已知 CVE
   - 建议:执行 `npm audit fix` 并评估破坏性升级

建议重点审核的文件模式

  • .env*、密钥与 CI 密钥引用
  • auth.ts、middleware.ts、**/api/auth/**
  • prisma/schema.prisma 或等价数据模型(权限、RLS)
  • next.config.* / 网关配置(安全头、重定向)
  • package.json / 锁文件
  • 支付、回调、导出、管理员接口相关路由

平台分布

OpenClaw

89.79%
按下载量换算927

安全审计

VirusTotal

未展示

ClawScan

通过

Static analysis

可疑

权限和风险

接触敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在提醒或未通过项,安装前请自行复核。目前只有一个公开来源,建议同时核对源仓库。

继续浏览同类 Skills