xss-prevention について
Webアプリケーションのクロスサイトスクリプティング対策を支援するセキュリティスキルです。入力のサニタイズ、出力エンコード、CSPヘッダーなどを扱い、Node.js、Python、React向けのガイドを含みます。
主な機能
- 01入力のサニタイズと出力エンコード
- 02CSPヘッダーのガイド
- 03URL検証とセキュアCookie
- 04Node.js、Python、React向けガイド
活用シーン
- 01ユーザー生成コンテンツの表示
- 02リッチテキストやコメントの保護
- 03検索と動的HTMLの処理
- 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.mdnodejs-xss-prevention.mdpython-xss-prevention.mdreact-xss-prevention.mdtemplates/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 対応