php-yii-audit
Yiiフレームワークのアクセス制御やCSRF対策、入力フィルタリング、URLの安全性などを静的に分析し、一般的な脆弱性タイプにマッピングすることで、セキュリティ監査を支援するツールです。
📜 元の英語説明(参考)
Yii 框架特效安全审计工具。针对 Yii(通常指 Yii2)访问控制(AccessControl/RBAC)、CSRF、输入过滤规则、输出编码策略、URL/重定向安全等进行白盒静态审计,并映射到通用漏洞类型体系(AUTH/CSRF/XSS/CFG/LOGIC 等)。
🇯🇵 日本人クリエイター向け解説
Yiiフレームワークのアクセス制御やCSRF対策、入力フィルタリング、URLの安全性などを静的に分析し、一般的な脆弱性タイプにマッピングすることで、セキュリティ監査を支援するツールです。
※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。
下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o php-yii-audit.zip https://jpskill.com/download/6025.zip && unzip -o php-yii-audit.zip && rm php-yii-audit.zip
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/6025.zip -OutFile "$d\php-yii-audit.zip"; Expand-Archive "$d\php-yii-audit.zip" -DestinationPath $d -Force; ri "$d\php-yii-audit.zip"
完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。
💾 手動でダウンロードしたい(コマンドが難しい人向け)
- 1. 下の青いボタンを押して
php-yii-audit.zipをダウンロード - 2. ZIPファイルをダブルクリックで解凍 →
php-yii-auditフォルダができる - 3. そのフォルダを
C:\Users\あなたの名前\.claude\skills\(Win)または~/.claude/skills/(Mac)へ移動 - 4. Claude Code を再起動
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。
詳しい使い方ガイドを見る →- 最終更新
- 2026-05-17
- 取得日時
- 2026-05-17
- 同梱ファイル
- 1
📖 Skill本文(日本語訳)
※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。
[Skill 名] php-yii-audit
PHP Yii(Yii2)フレームワークセキュリティ監査(php-yii-audit)
Yii2プロジェクトのフレームワークメカニズムと設定の落とし穴を分析し、以下の点を重点的にカバーします。
- アクセス制御:
AccessControlフィルター、rolesルール、matchCallbackの使用 - RBAC:
user->can/can()パスの認証の完全性 - CSRF:
enableCsrfValidationとクッキー検証 - 出力エンコーディング:ビューが
Html::encode、HtmlPurifierを使用しているか、および危険な生出力 - URLとリダイレクト:リダイレクト/URL生成が信頼できない入力によって制御されているか
- 入力フィルタリング:
rules()、safeAttributes()、シナリオがマスアサインメントを引き起こすか
入力
ユーザーが提供するもの:
source_path:Yiiプロジェクトのルートディレクトリ オプション:output_path:出力ディレクトリパス(デフォルトは{source_path}_audit)
出力ディレクトリ
以下に出力されます。
{output_path}/framework_audit/
yii_{timestamp}.md
フレームワーク識別(必須)
Yii識別の証拠点を提示する必要があります(根拠のない主張は許可されません):
- 依存関係の証拠:
composer.jsonにyiisoft/yii2または関連コンポーネントが含まれていること - エントリポイントの証拠:
web/index.phpまたはyiiエントリスクリプト - アプリケーションディレクトリ:
controllers/、models/、views/
リスクタイプマッピング(必須)
すべての発見について、以下を明記する必要があります。
- 汎用タイプコード:
AUTH/CSRF/XSS/CFG/LOGICなど - マッピング理由
必須監査リスト(必須:各項目をチェックし、結果を出力)
1) AccessControl認証ルールの正確性(AUTH)
以下を特定し、出力する必要があります。
behaviors()内のAccessControl設定:rules、roles、matchCallbackとアクションのカバー範囲matchCallbackのみに依存する緩いモードが存在するか- カスタム認証ロジックがあるが、統一されたフィルターに適用されていないか
判定ルール:
- AccessControlまたはルールが広すぎて迂回できるパスがある場合、AUTHリスクを出力します。
2) RBAC/権限検証の完全性(AUTH/LOGIC)
以下を特定し、出力する必要があります。
- コントローラー/サービス層の
user->can({value})、can()または同等の権限判断 - オブジェクトの所有権検証:
owner_id/user_idまたはリソースの所有関係が同時に検証されているか
判定ルール:
- 「ユーザーが権限タイプを持っている」とだけ判断し、オブジェクトの所有権を検証していない場合、AUTHまたはLOGICリスクを出力します。
3) CSRF(CSRF)
以下を特定し、出力する必要があります。
enableCsrfValidationとクッキー検証の設定- トークン受信フィールドと検証失敗時の処理方法(早期終了するかどうか)
4) 出力エンコーディングとXSS(XSS)
以下を特定し、出力する必要があります。
- ビューに生出力が存在するか:
Html::encodeが迂回されている状況、またはrawのようなメカニズムの使用 - テンプレートでユーザー入力がHTML属性/JS/URLに直接連結されているか
5) 入力フィルタリングとマスアサインメント(LOGIC)
以下を特定し、出力する必要があります。
- モデルの
rules()、safeAttributes()、scenarios()の設定 load($request->post())後に直接保存され、機密フィールドが禁止されていない状況が存在するか
観測可能なPoC(必須:フレームワークの特性を観測可能な検証フレームワーク)
以下のいずれか少なくとも2種類を提示し、観測点を明確に記述してください。
- AUTH:保護されていると思われるアクションに対し、低権限ユーザーでリクエストを送信し、応答の差異またはビジネス上の副作用を観察します。
- CSRF:保護されていると思われる状態変更POSTリクエストに対し、CSRFトークンを欠落させ、エラーと実行が成功するかどうかを観察します。
PoC出力要件:
- コントローラー/アクションのルーティングとパラメータフィールドを含める必要があります。
- 観察するHTTPステータスコードとビジネス結果を説明する必要があります。
出力完全性チェック(必須)
- [ ] 出力に以下が含まれているか:AccessControl/RBAC/CSRF/出力エンコーディング/入力フィルタリングのチェック結果
- [ ] すべてのリスクに以下が含まれているか:マッピングタイプコード + 位置の証拠 + 観測可能な検証フレームワーク + 修正提案
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開
PHP Yii(Yii2)框架安全审计(php-yii-audit)
分析 Yii2 项目的框架机制与配置踩坑,重点覆盖:
- 访问控制:
AccessControlfilter、roles规则、matchCallback 的使用 - RBAC:
user->can/can()路径的鉴权完整性 - CSRF:
enableCsrfValidation与 cookie validation - 输出编码:views 是否使用
Html::encode、HtmlPurifier,以及危险的原样输出 - URL 与跳转:redirect/Url 生成是否受信任输入控制
- 入参过滤:
rules()、safeAttributes()、场景(scenario)是否导致 Mass Assignment
输入
用户提供:
source_path:Yii 项目根目录 可选:output_path:输出目录路径(默认{source_path}_audit)
输出目录
输出到:
{output_path}/framework_audit/
yii_{timestamp}.md
框架识别(必做)
必须给出 Yii 识别证据点(不允许空口断言):
- 依赖证据:
composer.json包含yiisoft/yii2或相关组件 - 入口证据:
web/index.php或yii入口脚本 - 应用目录:
controllers/、models/、views/
风险类型映射(必做)
每条发现都必须写明:
- 通用类型码:
AUTH/CSRF/XSS/CFG/LOGIC等 - 映射原因
必审清单(必做:逐项检查并输出结果)
1) AccessControl 鉴权规则正确性(AUTH)
必须定位并输出:
behaviors()中的AccessControl配置:rules、roles、matchCallback与 action 覆盖范围- 是否存在只依赖 matchCallback 的宽松模式
- 是否有自定义认证逻辑但未落到统一 filter
判定规则:
- 有路径能绕过 AccessControl 或 rules 过宽,则输出 AUTH 风险
2) RBAC/权限校验完整性(AUTH/LOGIC)
必须定位并输出:
- 控制器/服务层的
user->can({value})、can()或等价权限判断 - 对象归属校验:是否同时验证 owner_id/user_id 或资源的归属关系
判定规则:
- 若仅判断“用户有权限类型”,但未校验对象归属,输出 AUTH 或 LOGIC 风险
3) CSRF(CSRF)
必须定位并输出:
enableCsrfValidation与 cookie validation 设置- token 接收字段与验证失败处理方式(是否早退)
4) 输出编码与 XSS(XSS)
必须定位并输出:
- views 中是否存在原样输出:
Html::encode被绕过的情况、或使用raw类机制 - 模板中是否将用户输入直接拼接到 HTML 属性/JS/URL 中
5) 输入过滤与 Mass Assignment(LOGIC)
必须定位并输出:
- 模型
rules()、safeAttributes()、scenarios()的配置 - 是否存在
load($request->post())后直接保存,而敏感字段未被禁止
可观测 PoC(必做:框架特效可观测验证框架)
至少给出以下两类其一并写清观察点:
- AUTH:对疑似受保护 action,用低权限用户请求,观察响应差异或业务副作用
- CSRF:对疑似受保护的状态变更 POST 请求,缺失 CSRF token,观察错误与是否仍成功执行
PoC 输出要求:
- 必须包含 controller/action 路由与参数字段
- 必须说明你要观察的 HTTP 状态码与业务结果
输出完整性检查(强制)
- [ ] 输出包含:AccessControl/RBAC/CSRF/输出编码/Input filtering 检查结果
- [ ] 每条风险都有:映射类型码 + 位置证据 + 可观测验证框架 + 修复建议