【テクニカル・上級編】出力エンコーディングの重要性と文脈依存の防御 – アプリケーションセキュリティ & 安全な開発防御ガイド

出力エンコーディングの「幻想」を剥ぐ:文脈依存型防御のアーキテクチャ

多くの開発者が陥る致命的な誤解がある。「フレームワークが自動でエスケープしてくれるから大丈夫だ」という慢心だ。しかし、現場の最前線に立つ我々にとって、その「自動エスケープ」こそが、脆弱性の温床であり、攻撃者が最初に突く脆弱な隙間である。

今日は、表層的なフィルタリングの話ではなく、ブラウザのレンダリングエンジンやパーサーがいかにして「文脈(Context)」を解釈し、その隙間でコードが実行されるのかという、低レイヤに近い視点からこの問題を紐解いていく。

—

1. 「文脈依存」という概念の解体

インジェクション防御の基本は「入力バリデーション」と「出力エンコーディング」だが、なぜ後者が重要なのか。それは、Webアプリケーションの出力先が単なる「文字列」ではないからだ。

ブラウザのパーサーは、HTML、JavaScript、CSS、URL属性など、受け取ったデータを異なるコンテキストとして処理する。例えば、

タグの中にあるか、
securityintronationalをフォローする

コメント

タイトルとURLをコピーしました