Entry № 760
MIME スニッフィング
MIME スニッフィング とは何ですか?
MIME スニッフィングブラウザがレスポンスのバイト列からコンテンツタイプを推測する挙動。攻撃者にアップロードファイルをスクリプトとして実行されるリスクがある。
MIME スニッフィングは、ブラウザがレスポンスの先頭バイトを調べ、サーバーが宣言した Content-Type を上書きしてリソースを描画する歴史的機能です。アプリがユーザーアップロードファイルを誤った型で配信していると、HTML や JavaScript を含むファイルが text/html としてスニッフされ、被害者のオリジンで実行されて保存型 XSS につながります。標準的な対策は X-Content-Type-Options: nosniff を返してブラウザに宣言された型を遵守させることです。厳密な Content-Type、CSP、ユーザーコンテンツを別オリジンで配信するといった対策と併用してください。
● 例
- 01
X-Content-Type-Options: nosniff
- 02
アバターアップロードが image/png を宣言しているが中身は HTML。nosniff がないとブラウザがページとして実行する。
● よくある質問
MIME スニッフィング とは何ですか?
ブラウザがレスポンスのバイト列からコンテンツタイプを推測する挙動。攻撃者にアップロードファイルをスクリプトとして実行されるリスクがある。 サイバーセキュリティの アプリケーションセキュリティ カテゴリに属します。
MIME スニッフィング とはどういう意味ですか?
ブラウザがレスポンスのバイト列からコンテンツタイプを推測する挙動。攻撃者にアップロードファイルをスクリプトとして実行されるリスクがある。
MIME スニッフィング からどのように防御しますか?
MIME スニッフィング に対する防御は通常、上記の定義で述べたとおり、技術的統制と運用上の実践を組み合わせます。