php-xss-audit
PHPのウェブサイトのソースコードを分析し、ユーザー入力がHTMLやJavaScriptなどの出力コンテキストにどのように影響するかを特定し、XSS脆弱性の悪用可能性の評価、PoC、修正提案を提供するSkill。
📜 元の英語説明(参考)
PHP Web 源码 XSS 审计工具。识别用户输入进入输出上下文(HTML/属性/JS/URL/模板),分析转义与防护策略,输出可利用性分级、PoC 与修复建议(禁止省略)。
🇯🇵 日本人クリエイター向け解説
PHPのウェブサイトのソースコードを分析し、ユーザー入力がHTMLやJavaScriptなどの出力コンテキストにどのように影響するかを特定し、XSS脆弱性の悪用可能性の評価、PoC、修正提案を提供するSkill。
※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。
下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o php-xss-audit.zip https://jpskill.com/download/6023.zip && unzip -o php-xss-audit.zip && rm php-xss-audit.zip
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/6023.zip -OutFile "$d\php-xss-audit.zip"; Expand-Archive "$d\php-xss-audit.zip" -DestinationPath $d -Force; ri "$d\php-xss-audit.zip"
完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。
💾 手動でダウンロードしたい(コマンドが難しい人向け)
- 1. 下の青いボタンを押して
php-xss-audit.zipをダウンロード - 2. ZIPファイルをダブルクリックで解凍 →
php-xss-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 自身は原文を読みます。誤訳がある場合は原文をご確認ください。
PHP XSS 監査(php-xss-audit)
PHP プロジェクトのソースコードを分析し、クロスサイトスクリプティング(XSS)を特定します。これは、ユーザー入力が出力コンテキストに入り、適切にエスケープ/エンコードされていない場合、またはフレームワークが自動エスケープを無効にしているために式が実行されたり HTML が挿入されたりする場合に発生します。
分類と番号付け
- 詳細については、
shared/SEVERITY_RATING.mdを参照してください。 - 脆弱性番号:
{C/H/M/L}-XSS-{シーケンス番号}
XSS シンク(必須)
以下の出力点を特定します。
- ネイティブ出力:
echo/print/printf/<?= ?>(変数をレスポンスに出力) - レスポンスへの文字列連結:
header()/setcookie()(制御可能なコンテンツを含む場合) - テンプレートレンダリング:
- Twig:
{{ }}(エスケープ)と{% autoescape false %}/|rawのリスクポイント - Smarty:
fetch/displayと安全でない変数出力 - Blade クラス:
{!! !!}(エスケープなし出力)
- Twig:
- 動的スクリプト/イベント属性:
on*属性、<script>内、URL パラメータへの出力
エスケープ/保護チェック(必須)
疑わしい各チェーンについて、以下を分析する必要があります。
htmlspecialchars/htmlentitiesまたはフレームワークの自動エスケープが存在するかどうか- コンテキストエンコーディング(HTML、属性、JS、URL)が存在するかどうか
- エスケープが無効になっているかどうか(raw/raw filter/unescaped output)
トレーサーのトリガー条件(必須)
- ユーザー入力が多層処理を経て HTML フラグメントに連結される場合
- 分岐が存在する場合:ある分岐はエスケープし、別の分岐はエスケープしない場合
- 出力点がテンプレート層にあり、入力がコントローラー層にある場合
レポート出力
以下に出力します。
{output_path}/vuln_audit/xss_{timestamp}.md
脆弱性項目テンプレート(必須)
php-sql-audit とほぼ同じですが、データフローチェーンでは以下を明確にする必要があります。
- 出力コンテキスト:HTML body/attribute/script/URL パラメータ/テンプレートフラグメント
- 具体的なエスケープ関数またはエスケープ無効化の位置と証拠
- PoC には実行可能な XSS ペイロードを含め、必要なエンコーディング方法を区別する必要があります。
証拠の引用(必須:php-route-tracer から)
各 XSS の疑わしい脆弱性について、トレース出力の ## 9) Sink Evidence Type Checklist の XSS 行に対応する証拠の要点を個別に引用する必要があります(ステータスは検証待ちでも構いませんが、証拠の引用は必須です)。
EVID_XSS_OUTPUT_POINT:レスポンス出力点の位置の証拠(echo/テンプレート出力/<script>または属性/URL コンテキスト)EVID_XSS_USER_INPUT_INTO_OUTPUT:ユーザー入力が出力に入った証拠EVID_XSS_ESCAPE_OR_RAW_CONTROL:エスケープ/エスケープ無効化の証拠(htmlspecialchars など、または raw/raw モードの証拠)
トレーサーの証拠欠落処理(必須)
- 上記 1~3 のいずれかの重要な証拠の要点が見つからない場合、その脆弱性のステータスは
⚠️検証待ちとしかマークできず、直接✅悪用可能と確認済みとすることはできません。
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開
PHP XSS 审计(php-xss-audit)
分析 PHP 项目源码,识别跨站脚本(XSS):用户输入进入输出上下文且未做正确转义/编码,或框架禁用了自动转义导致表达式执行/HTML 注入。
分级与编号
- 详见:
shared/SEVERITY_RATING.md - 漏洞编号:
{C/H/M/L}-XSS-{序号}
XSS Sink(必做)
识别以下输出点:
- 原生输出:
echo/print/printf/<?= ?>(输出变量到响应) - 字符串拼接到响应:
header()/setcookie()(若包含可控内容) - 模板渲染:
- Twig:
{{ }}(转义)与{% autoescape false %}/|raw风险点 - Smarty:
fetch/display与不安全变量输出 - Blade 类:
{!! !!}(不转义输出)
- Twig:
- 动态脚本/事件属性:输出到
on*属性、<script>内、URL 参数
逃逸/防护检查(必做)
对每条疑似链必须分析:
- 是否存在
htmlspecialchars/htmlentities或框架自动转义 - 是否存在上下文编码(HTML、属性、JS、URL)
- 是否禁用了转义(raw/raw filter/unescaped output)
tracer 触发条件(必做)
- 用户输入经历多层处理、拼接成 HTML 片段
- 存在分支:某分支转义,另一分支不转义
- 输出点在模板层,输入在 controller 层
报告输出
输出到:
{output_path}/vuln_audit/xss_{timestamp}.md
漏洞条目模板(强制)
与 php-sql-audit 基本一致,但在数据流链里必须明确:
- 输出上下文:HTML body/attribute/script/URL 参数/模板片段
- 具体转义函数或转义关闭点的位置与证据
- PoC 必须包含可执行 XSS payload,并区分需要的编码方式
证据引用(强制:来自 php-route-tracer)
每条 XSS 疑似漏洞必须逐项引用 trace 输出中 ## 9) Sink Evidence Type Checklist 的 XSS 行对应证据要点(允许状态为待验证,但证据引用必须存在):
EVID_XSS_OUTPUT_POINT:响应输出点位置证据(echo/模板输出/<script>或属性/URL 上下文)EVID_XSS_USER_INPUT_INTO_OUTPUT:用户输入进入输出的证据EVID_XSS_ESCAPE_OR_RAW_CONTROL:转义/禁用转义证据(htmlspecialchars 等或 raw/raw 模式证据)
tracer 证据缺失处理(强制)
- 若无法定位上述 1~3 任一关键证据要点:该漏洞状态只能标记为
⚠️待验证,不得直接给出✅已确认可利用。