mcpField
S
security-headers-configuration

security-headers-configuration

github.com/secondskyセキュリティ240446 回インストール5 週間前に更新
リポジトリ

security-headers-configuration について

ブラウザー経由の攻撃への対策となる HTTP レスポンスヘッダーの設定を支援するセキュリティスキルです。Express と Nginx の例、チェックリスト、検証ツールを紹介します。

主な機能

  1. 01HSTS 設定の指針
  2. 02コンテンツセキュリティポリシー設定
  3. 03クリックジャッキングと MIME スニッフィング対策
  4. 04Express Helmet の例
  5. 05Nginx ヘッダー設定
  6. 06ヘッダー検証チェックリスト

活用シーン

  1. 01Express へのブラウザーセキュリティヘッダー追加
  2. 02Nginx でのヘッダー設定
  3. 03コンテンツセキュリティポリシーの確認
  4. 04変更後のヘッダー設定チェック

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/secondsky/claude-skills --skill security-headers-configuration

インストール後、Claude Code で/security-headers-configurationを入力して読み込まれたか確認します。

同梱ファイルreferences/python-apache.md

詳細

セキュリティヘッダーの設定

HTTP セキュリティヘッダーを実装して、一般的なブラウザベースの攻撃を防ぎます。

必須ヘッダー

ヘッダー目的値
HSTSHTTPS を強制するmax-age=31536000; includeSubDomains
CSPリソースを制限するdefault-src 'self'
X-Frame-Optionsクリックジャッキングを防ぐDENY
X-Content-Type-OptionsMIME スニッフィングを防ぐnosniff

Express の実装

const helmet = require('helmet');

app.use(helmet());

// Custom CSP
app.use(helmet.contentSecurityPolicy({
  directives: {
    defaultSrc: ["'self'"],
    scriptSrc: ["'self'", "'unsafe-inline'"],
    styleSrc: ["'self'", "'unsafe-inline'"],
    imgSrc: ["'self'", "data:", "https:"],
    connectSrc: ["'self'", "https://api.example.com"],
    fontSrc: ["'self'", "https://fonts.gstatic.com"],
    frameAncestors: ["'none'"]
  }
}));

Nginx の設定

add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
add_header X-Frame-Options "DENY" always;
add_header X-Content-Type-Options "nosniff" always;
add_header X-XSS-Protection "1; mode=block" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
add_header Permissions-Policy "geolocation=(), microphone=(), camera=()" always;
add_header Content-Security-Policy "default-src 'self'; script-src 'self'" always;

検証ツール

セキュリティヘッダーのチェックリスト

  • HSTS を有効にし、max-age を長く設定する
  • CSP を設定してテストする
  • X-Frame-Options を DENY に設定する
  • X-Content-Type-Options を nosniff に設定する
  • Referrer-Policy を設定する
  • Permissions-Policy で使用しない機能を無効にする

追加の実装

以下については、references/python-apache.md を参照してください。

  • Python Flask のセキュリティヘッダーミドルウェア
  • Flask-Talisman ライブラリの設定
  • Apache .htaccess の設定
  • ヘッダーのテストスクリプト

よくある間違い

  • CSP を report-only にしたままにする
  • 制限が緩すぎるポリシーを使用する
  • 変更後のテストを忘れる
  • HSTS にすべてのサブドメインを含めない

コメント