[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$f3odhicl8zu9qn":3},{"code":4,"message":5,"data":6,"timestamp":24},10000,"success",{"full_name":7,"position":8,"stars_gained":8,"description":9,"language":10,"stars":11,"forks":12,"age_days":13,"hn_threads":14,"one_liner":15,"summary_md":16,"topic":17,"github_topics":20,"license":21,"homepage":10,"updated_at":22,"history":23},"songjianyang\u002Fxss-audit",0,"Static XSS audit skill with 14 layers of checks for React, TypeScript, and JavaScript projects.",null,339,100,1,[],"面向 React\u002FTypeScript\u002FJavaScript 项目的静态 XSS 审计清单，以 Agent 技能形式提供。","如果你已经在用带技能机制的编程 Agent，并且想要一份结构化的静态 XSS 排查清单来对照 React\u002FTypeScript\u002FJavaScript 代码库，这个项目值得看一眼。它是技能包，不是扫描器：安装方式是把技能文件复制到 Agent 的技能目录，输出是一份还需要你人工核实的 Markdown 报告。\n\n## 解决什么问题\n\n开发者或安全评审人员想在发布前、或做漏洞赏金时，把前端代码里的 XSS 风险过一遍。通常的做法是手动搜索 `innerHTML`、`dangerouslySetInnerHTML`、`href`、`postMessage` 这类 sink，再逐条回溯来源、判断有没有校验；过程慢，而且容易半途而废。这个技能改变的是搜索之后的那一步：它给审查用 Agent 提供 14 层检查提示和固定报告格式，要求写清 source、sink、数据流和修复建议，人拿到的是一份可核对的清单，而不是一堆 grep 命中。最终产物是评审文档，不是已确认的漏洞列表。\n\n## 有什么不同\n\n检查覆盖面是主要卖点。它不止于 DOM 注入，还覆盖属性和事件处理器、URL 与导航校验、SSR 启动数据与 JSON-LD 的脚本逃逸、props 透传、`postMessage` 来源校验、原型污染链、`eval`\u002F`Function`\u002FBlob 执行、CSS 注入、SVG\u002FMathML 命名空间、Markdown 与 sanitizer\u002FmXSS、Vue `v-html` 和 Lit `unsafeHTML` 等框架信任钩子、Trusted Types\u002FCSP，以及框架绑定与模板注入路径。README 说明这些内容来自作者在漏洞赏金中的实战，并给出 2025 Q3 至 2026 Q2 连续四个季度进入 Microsoft MSRC 研究者排行榜前十的记录（[排行榜](https:\u002F\u002Fmsrc.microsoft.com\u002Fleaderboard)、[作者主页](https:\u002F\u002Fx.com\u002FSecBoxer)）。这能说明作者的方法论背景，但不等同于独立验证该技能能找全问题。\n\n输出格式体现了取舍。每条发现要记录位置、source\u002Fsink\u002F数据流、脆弱代码、修复建议、置信度和验证状态，复现说明还要区分理论步骤与真正执行过的步骤；不完整的数据流会单列到人工复核区，每层搜索摘要则区分“模式匹配”和“已确认漏洞”（[示例报告](https:\u002F\u002Fgithub.com\u002Fsongjianyang\u002Fxss-audit\u002Fblob\u002Fmain\u002Fexamples\u002Fsample-report.md)）。这种结构便于分诊，但也说明工具只做静态分析：README 明确说搜索命中不等于确认漏洞，并提醒运行时行为、构建期变换、被排除代码和框架执行时机都会带来误报漏报。你需要预留人工验证的时间，报告只是起点。\n\n## 谁值得试\n\n适合：已经使用带技能机制的编程 Agent、想要一套可重复的 XSS 清单、并且愿意手工核实结论的前端或应用安全工程师。对想拿自己的审查流程和更广的 sink 列表做对照的漏洞赏金研究者，也算合适。\n\n不适合：期待接入 CI、自动拦截合并或给出确定漏洞数量的人。README 没有提供自动化测试框架、依赖安装或运行时检查，并明确说不保证覆盖率。如果你的代码库主要是别的语言做服务端渲染，或者你需要动态 PoC 来证明可利用性，这份清单的目标不在那里。\n\n## 使用条件与边界\n\n安装很简单：把 `xss-audit\u002FSKILL.md` 复制到 Agent 的技能目录，然后用 `\u002Fxss-audit` 或 `\u002Fxss-audit src\u002F` 调用（[项目 README](https:\u002F\u002Fgithub.com\u002Fsongjianyang\u002Fxss-audit\u002Fblob\u002Fmain\u002FREADME.md)、[SKILL.md](https:\u002F\u002Fgithub.com\u002Fsongjianyang\u002Fxss-audit\u002Fblob\u002Fmain\u002FSKILL.md)）。没有包管理器步骤，也不需要跑服务，但前提是你的 Agent 支持技能文件；不支持的话，这份清单就只能当阅读材料。\n\n更大的限制是只做静态分析。发现需要人工确认，报告还可能包含敏感路径、源码、内网域名或凭证，分享前要审查和清理。项目采用 MIT 许可证（[许可证](https:\u002F\u002Fgithub.com\u002Fsongjianyang\u002Fxss-audit\u002Fblob\u002Fmain\u002FLICENSE)），想按自己的审查流程改造清单并不麻烦。README 除了目标路径参数外没有记录按项目配置的方法，因此要准备按自己的框架组合调整各层描述。\n\n## HotRepo 点评\n\nHotRepo 从 2026-10-24 开始追踪该仓库；到 2026-10-25，它有 339 个总 star，在新项目榜（全语言）排第 20（[仓库](https:\u002F\u002Fgithub.com\u002Fsongjianyang\u002Fxss-audit)）。这只是一个带日期的快照，不是增长序列，无法据此判断热度能否持续。作为采用决策，更值得先确认的是这 14 层是否覆盖你实际使用的技术栈，尤其是信任钩子列表里没有的框架，再决定是否投入时间运行。",{"slug":18,"name":19},"security","安全",[],"MIT","2026-10-25T12:46:18Z",[],1792971822]