review-hog-perspective-contracts-security について
PostHog Review のスキルで、PR の変更に含まれるセキュリティリスクや互換性の問題を確認します。API 契約、入力検証、認可、スキーマとインターフェースの整合性を重視します。
主な機能
- 01API 変更による契約破壊を確認
- 02一般的なセキュリティ脆弱性を調査
- 03入力検証とサニタイズを確認
- 04スキーマ、モデル、インターフェースを照合
- 05調査用コマンドと対象ファイルを提示
活用シーン
- 01API 変更による互換性リスクの確認
- 02認証・認可経路の調査
- 03データ入力箇所の検証ロジックの確認
- 04データベーススキーマとコードモデルの照合
MCP 対応
PostHog Review エージェントが使うレビュー観点のスキルです。エージェントは実行時に PostHog MCP 経由でチームスキルを取得します。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ posthog/ ai-plugin --skill review-hog-perspective-contracts-securityインストール後、Claude Code で/review-hog-perspective-contracts-securityを入力して読み込まれたか確認します。
詳細
レビューパースペクティブ:コントラクトとセキュリティ
コントラクトとセキュリティの視点から PR の変更部分をレビューします。コードは安全か、互換性は維持されているかを確認してください。API コントラクトと破壊的変更、セキュリティの脆弱性、入力検証、スキーマとインターフェースの整合性に重点を置きます。
同じ変更部分を並行してレビューする、複数ある独立した視点のうちの一つです。ロジックとパフォーマンスは別の視点で扱います。担当範囲に集中し、別の視点でも報告される可能性は気にせず、見つけたセキュリティまたはコントラクト上の問題をすべて報告してください(重複は後で別の重複排除ステップで解決します)。
主な調査領域
-
API コントラクトと破壊的変更
- リクエスト/レスポンスの形式に変更がないか確認する
- 削除または名前が変更されたフィールドを特定する
- データ型の変更を検証する
- バージョンの互換性を確認する
- GraphQL/REST のコントラクトへの準拠を確認する
-
セキュリティの脆弱性
- SQL インジェクションの脆弱性がないか確認する
- XSS の攻撃経路を確認する
- プロンプトインジェクションのリスクを特定する(LLM のコードの場合)
- 認証/認可チェックを検証する
- 機密データが漏えいしていないことを確認する
-
入力検証と境界値
- すべてのエントリーポイントで検証されていることを確認する
- 入力のサニタイズを確認する
- 型安全性を検証する
- 範囲と上限のチェックを確認する
- バッファーオーバーフローのリスクを確認する
-
スキーマとインターフェースの整合性
- データベーススキーマがコードのモデルと一致することを確認する
- フロントエンドとバックエンドの型の一貫性を確認する
- API 仕様を検証する
- マイグレーションとの互換性を確認する
調査コマンド
- API エンドポイントを検索する:
rg "@action\(|@api_view\(|class \w+(ViewSet|APIView)" --type py -B 2 -A 5(DRF エンドポイント。ルートの配線はurls.py/routes.pyファイルにあります) - 入力検証を確認する:
rg "validate|sanitize|clean.*input" --type py -A 5 - SQL クエリを検索する:
rg "execute|query|raw.*sql" --type py -B 2 -A 5 - 認証を確認する:
rg "authenticate|authorize|permission|@login_required" --type py -B 2 -A 3 - スキーマ定義を検索する:
rg "class.*Model|Schema|Interface" --type py --type ts -A 10
注力する箇所
次の項目を主に確認してください。
- API エンドポイントとコントローラー
- データベースモデルとマイグレーション(スキーマ検証で重要)
- 型定義とインターフェース(
*.d.ts、型注釈) - 認証/認可モジュール
- 入力検証とサニタイズのコード
- データのシリアライズ/デシリアライズ処理
- 外部 API 連携
- API 仕様ファイル(OpenAPI、GraphQL スキーマ)とセキュリティ設定ファイル
テスト以外のファイルにある問題のみを検出してください。参照ドキュメントや、データ処理を行わないフロントエンド専用の UI コンポーネントは背景情報として参照してもかまいませんが、それらについてコントラクトまたはセキュリティ上の問題を報告しないでください。
他の視点に任せる項目
- ロジックや正確性のエラー → ロジックと正確性
- パフォーマンスの最適化やエラーハンドリングの完全性 → パフォーマンスと信頼性
- コードスタイルやフォーマット → PostHog Review の対象外
主な確認事項
- すべての入力が適切に検証され、サニタイズされていますか?
- このコードによってセキュリティの脆弱性が生じる可能性はありますか?
- API コントラクトは維持されていますか、または適切にバージョン管理されていますか?
- 機密データは適切に保護されていますか?
- API の利用者に影響する破壊的変更はありますか?
- 各レイヤーのスキーマとインターフェースは整合していますか?
有効な指摘の例
コントラクトとセキュリティの指摘には、次のようなものがあります。
- セキュリティの脆弱性(インジェクション、XSS など)
- API の破壊的変更
- 入力検証の欠如
- スキーマの不一致
- 認証/認可の不備
- データ漏えいのリスク
- コントラクト違反