mcpField
X
xss-prevention

xss-prevention

github.com/aj-geddes安全373479 次安装34 周前更新
代码仓库

关于 xss-prevention

用于防范 Web 应用跨站脚本攻击的安全技能,涵盖输入净化、输出编码、CSP 标头和安全编码实践,并提供 Node.js、Python 与 React 指南。

主要功能

  1. 01输入净化与输出编码
  2. 02CSP 标头实践指南
  3. 03URL 验证与安全 Cookie
  4. 04Node.js、Python 和 React 指南

适用场景

  1. 01展示用户生成内容
  2. 02保护富文本与评论功能
  3. 03处理搜索和动态 HTML
  4. 04检查模板渲染

安装

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

$npx skills add https://github.com/aj-geddes/useful-ai-prompts --skill xss-prevention

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

包含的文件

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

references/
content-security-policy.md
nodejs-xss-prevention.md
python-xss-prevention.md
react-xss-prevention.md
templates/
component-template.tsx

详细介绍

XSS 防护

目录

概述

通过输入净化、输出编码、CSP 标头和安全编码实践,全面防范跨站脚本攻击(XSS)。

适用场景

  • 显示用户生成的内容
  • 富文本编辑器
  • 评论系统
  • 搜索功能
  • 动态生成 HTML
  • 模板渲染

快速开始

最简可运行示例:

// xss-prevention.js
const createDOMPurify = require("dompurify");
const { JSDOM } = require("jsdom");
const he = require("he");

const window = new JSDOM("").window;
const DOMPurify = createDOMPurify(window);

class XSSPrevention {
  /**
   * HTML Entity Encoding - Safest for text content
   */
  static encodeHTML(str) {
    return he.encode(str, {
      useNamedReferences: true,
      encodeEverything: false,
    });
  }

  /**
   * Sanitize HTML - For rich content
   */
  static sanitizeHTML(dirty) {
    const config = {
      ALLOWED_TAGS: [
// ... (see reference guides for full implementation)

参考指南

references/ 目录中的详细实现:

指南内容
Node.js XSS 防护Node.js XSS 防护
Python XSS 防护Python XSS 防护
React XSS 防护React XSS 防护
内容安全策略内容安全策略

最佳实践

✅ 应该做
  • 默认对输出进行编码
  • 使用模板引擎
  • 实施 CSP 标头
  • 净化富文本内容
  • 验证 URL
  • 使用 HTTPOnly Cookie
  • 定期进行安全测试
  • 使用安全框架
❌ 不应该做
  • 信任用户输入
  • 直接使用 innerHTML
  • 跳过输出编码
  • 允许内联脚本
  • 使用 eval()
  • 混用上下文(HTML/JS)

评论

支持 Markdown