SAG / ARCHITECTURE NOTE
ZIP bombとパストラバーサル:データ収集システムの信頼境界はどこにあるのか?
圧縮入力の許容サイズ、項目数、パスを制限し、処理リソースを予測可能にする設計です。小さなアップロードでも、展開後に大量のメモリを必要とする場合があります。ファイル名をそのままパスとして使うと、分析システム外のファイルに影響を及ぼすおそれもあります。
圧縮入力の境界とは何か?
圧縮入力の許容サイズ、項目数、パスを制限し、処理リソースを予測可能にする設計です。 このノートでは、圧縮入力の境界を機能名ではなく、入力・変換・出力に関する責任として捉えます。分析結果を信頼するには、どのような資料が入力され、何を確認し、どこまで結論を導けるのかが一貫している必要があります。
なぜこの技術が必要なのか?
小さなアップロードでも、展開後に大量のメモリを必要とする場合があります。ファイル名をそのままパスとして使うと、分析システム外のファイルに影響を及ぼすおそれもあります。
設計原則とデータフロー
圧縮サイズと展開後のサイズを個別に制限し、異常な項目、重複するパス、サポートされていない形式を拒否します。入力エラーとシステム障害は、異なる状態として記録します。
圧縮入力 → 許可リスト・リソース制限 → 検証済みドキュメント
各段階では、前段階の成功を次の段階の成果と呼び替えてはなりません。資料の識別子、期間、検証状態を継続して記録すれば、欠落やエラーが発生した場所を特定し、再確認する範囲を決められます。
SAGアーキテクチャとの関係
SAGのZIPパスはサイズを制限し、ディスクに展開せずに許可されたHTMLを読み取ります。顧客資料の実行や外部アセットの自動ダウンロードは、分析に含めません。
SAGの運用上の価値は、この関係をページ、質問、比較結果、改善作業へとつなげることにあります。顧客は数値だけでなく、強化すべき対象と判断根拠を併せて確認できます。追加の適用が必要なパターンについては、該当する段落の範囲を基準に読み取ってください。
説明用の例と判断基準
説明用の入力に正常なHTMLとサポートされていない圧縮項目が混在していた場合、すべてを成功として扱ってはなりません。どの条件が拒否されたのかを区別し、資料を再準備できるエラーを提示する必要があります。
上記の例は構造と計算を説明するためのものであり、特定の顧客の実測結果ではありません。実際のレポートでは、選択した期間・対象・観測条件と元の記録を関連付け、同じ判断を再確認できるようにする必要があります。
実務検証チェックリスト
| フローの段階 | 確認項目 |
|---|---|
| 圧縮入力 | 展開後のサイズと項目数を確認 |
| 許可リスト・リソース制限 | 絶対パス・上位ディレクトリへのパスを拒否 |
| 検証済みドキュメント | エラー発生後の部分保存ポリシーを確認 |
正常な入力だけでなく、空の資料、重複した資料、条件の異なる資料でも、同じ意味を保てるか確認してください。検証項目を作業完了の基準に結び付けることで、機能の説明と実際の運用との差を縮められます。
制限事項と適用時の注意点
処理制限は安全性の向上に役立ちますが、すべての悪意あるドキュメントが無害であることを証明するものではありません。許可リスト、ライブラリの更新、エラーに関する回帰検証を併せて運用する必要があります。
研究資料と公式ドキュメント
- OWASPファイルアップロードガイド — アップロードの許可形式とリソース制限を検討するためのセキュリティ設計資料です。
外部資料は上記の設計テーマに関する背景資料であり、SAGのすべての実装や顧客の成果を認証するものではありません。このノートの適用に関する解釈と説明用の例は、SAGの運用構造を基準にまとめています。資料確認日:2026-10-06。
関連情報と機能の確認
この技術についてさらに読む方法
HTML ZIP・サイトマップ → 正規化 → ページバージョン → 根拠の記録、という流れをたどります。
SAG / KNOWLEDGE LINKS
