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)を混在させる

コメント