SONAE KNOWLEDGE / PHP SECURITY / 09
PHPとAI連携のSSRF対策。URL取得の行き先を制限する
記事の要約・画像取込み・Webhookが、サーバーの通信権限を利用者へ渡さないようにする。
公式資料確認:2026-10-26/AIによる資料確認・執筆
公式情報には各節で出典を付けています。確認表・架空例・受入条件はSONAEの提案です。制作と資料確認にAIを使用。本人の編集確認は未了です。専門家による独立した監修は受けていません。
URLの文字列を、サーバーの通信へ変える境界
OWASPのSSRF対策は、許可する相手の検証とネットワーク側の制限などを説明し、リダイレクトが検証を迂回しないよう注意しています。PHPのURL取得やAI要約へ資料を渡す処理でも、サーバーからどこへ接続できるかを別に管理します。AIが読めるURLを返したからと、その相手へ接続してよいとは判断しません。
公式情報:OWASP:SSRF対策(確認 2026-10-26)
機能ごとに、必要な行き先を決める
SONAEの架空例では、契約済みの資料サービスからだけ取り込む機能と、一般公開の記事を要約する機能を分けます。前者は固定した相手へ限定できても、後者にはより広い取得処理が必要です。同じ通信権限で実装せず、用途、許可先、利用者、扱う情報、応答の量を整理します。必要ない任意URL入力を設けない判断も検討します。
SONAEの点検・運用提案。架空例。
AIの提案から、通信の許可へ直接進ませない
図の内容を文章で読む
取得したい資料:用途・利用者を確認。接続先の境界:許可先・転送・解決先。限定した取得:量・時間・認証情報。進めない判断:内部・許可外の行き先/アプリと通信基盤で拒否。図は設計上の境界です。AIの出力を接続許可や会社の承認の代わりにはしません。
最初のURLだけを見て、次の接続を許可しない
SONAEの設計案では、名前の解決と実接続、転送後の行き先が許可範囲に留まるかを管理します。最初の表記が正規のドメインに見えるだけで、内部の管理系へ到達できる経路を許可しません。具体的な処理は採用する通信ライブラリーと基盤に合わせ、アプリ側とネットワーク側の両方で責任分担を決めます。
SONAEの点検・運用提案。架空例。
取得処理へ、業務の秘密を持たせない
資料取得用の処理へ、顧客DBや管理サービスを操作できる認証情報を不要に渡さない構成を提案します。外部へ送るヘッダーやCookieも用途を限定します。AIの回答や外部サイトの内容を、認証情報を別の相手へ送る指示として扱いません。取得した本文と、処理を実行する会社の指示は、信頼の根拠が異なるためです。
SONAEの点検・運用提案。架空例。
大きな応答と、長い待ち時間も制限する
行き先の制限に加え、時間、応答サイズ、回数、同時処理、形式を決める受入案にします。通信不能、転送、巨大な応答をどう扱うかを、架空の許可済み対象で試験する計画を作ります。取得できなかったときに別の無制限な経路へ自動で切り替える設計を残さず、保留や失敗を利用者へ説明できるようにします。
SONAEの点検・運用提案。架空例。
試験は、所有する架空対象に限定する
内部管理先やクラウドの認証情報へ試しに接続することを、この記事の読者へ勧めるものではありません。実施には対象と方法の正式な許可が必要です。SONAEの記録票では、用途、許可する経路、拒否、転送後の扱い、通信制限、結果を残します。今回の調査では外部資料の閲覧だけを行い、顧客や第三者へのSSRF試験は行っていません。
SONAEの点検・運用提案。架空例。
取得専用の架空対象で、失敗の形まで設計する
SONAEの検証計画では、所有するダミーの許可先、許可外を表す別のダミー、転送だけを返す対象、応答を遅らせる対象を分けます。実際の内部管理系や認証情報の配布先へ接続して確かめる必要はありません。期待結果は、許可先だけから制限内の情報を取得でき、拒否や時間切れのときは別経路へ迂回しないことです。記録には宛先の識別と判断理由、量と時間を必要な範囲で残し、URLに含まれる秘密や取得本文を不用意に出力しません。この計画は未実行で、別に進める隔離VM・AWSの結合試験の合格記録とも混同しません。
SONAEの点検・運用提案。架空例。
架空環境での受入計画
以下は未実行の計画です。実測の合格記録ではありません。
- 許可したダミー
- 条件:量と時間が範囲内
期待結果:指定した資料だけ取得 - 許可外のダミー
- 条件:登録した範囲外
期待結果:接続を許可しない - 別先へ転送
- 条件:転送先は許可範囲外
期待結果:追従しないか再検証で拒否 - 遅延・量の超過
- 条件:検証用の制限超過
期待結果:制限で終了・保留を記録
社内で使う確認票
SONAEの運用案・架空例。秘密の値を記入しないでください。
- 用途
- 架空:許可済み資料の要約/取得担当
- 行き先
- 許可範囲・名前解決・転送後の検証
- 制限
- 送る認証情報・量・時間・同時数
- 受入
- 所有する架空対象・拒否・保留・記録
完了前のチェック
- 用途ごとに接続先を限定
- 転送後と実接続の境界を確認
- 取得処理に不要な権限を持たせない
- AI出力を接続の承認にしない
一次資料と確認範囲
資料の対象条件と掲載内容を確認して構成した記事です。顧客への接続や攻撃再現はしていません。資料の改訂を自動追従するものではありません。実施直前に公式資料と配布元の最新案内を再確認してください。