web-security について
開発者向けのWebセキュリティスキルで、信頼できない入力、認証、ブラウザーの境界、データ、依存関係を扱う防御策をまとめています。入力検証と露出の抑制、安全なデフォルト設定を重視します。
主な機能
- 01入力の検証とサニタイズ
- 02XSSとインジェクションの防止
- 03認証と認可の保護
- 04CORSとCSPの境界を順守
- 05機密データの露出を抑制
- 06サードパーティ依存関係の評価
活用シーン
- 01Webアプリの入力処理の確認
- 02認証情報の安全な保存方法の選定
- 03ブラウザーセキュリティポリシーの設定
- 04ログ内の機密データの削減
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ academind/ ai-config --skill web-securityインストール後、Claude Code で/web-securityを入力して読み込まれたか確認します。
詳細
Web セキュリティ
Web セキュリティを後回しにせず、必須要件として扱います。 悪意のある入力や信頼できない環境を、デフォルトで想定します。
基本原則
- ユーザー入力を決して信頼しない
- 境界でデータを必ず検証し、サニタイズする
- 設定の柔軟性より、安全なデフォルト設定を優先する
XSS とインジェクション
dangerouslySetInnerHTMLや生の HTML の挿入は避ける- 動的コンテンツを適切にエスケープし、エンコードする
- 信頼できないデータを HTML、CSS、JS のコンテキストに決して埋め込まない
- SQL インジェクション対策を徹底する
認証と認可
- シークレットやトークンを安全でない場所に保存しない
- 可能な限り、機密性の高い認証情報に localStorage を使用しない
- 該当する場合は、HTTP-only かつセキュアな Cookie を使用する
- サーバーで必ず認可を強制する
ブラウザーのセキュリティ API
- CORS、CSP、ブラウザーのセキュリティ境界を尊重する
- Content Security Policy を使用して、スクリプトやリソースの実行を制限する
- CSP が有効な場合は、インラインスクリプトやスタイルを避ける
データの取り扱い
- データの露出を最小限に抑える
- 機密情報をログに記録しない
依存関係とサプライチェーン
- 不要なパッケージを避ける
- サードパーティのコードを信頼できない入力として扱う
一般原則
- シンプルにすることで攻撃対象領域を減らせます
- 判断に迷った場合は、より制限の厳しい選択肢を選びます
コメント
Markdown 対応