問題
Webアプリケーションで、ユーザがアップロードしたファイルを安全に扱うために行うべき対策として、最も不適切なものはどれか。
選択肢
- 1ア アップロード可能なファイルの拡張子を制限する
- 2イ アップロードされたファイルをWebルートの外に保存する
- 3ウ ユーザがアップロードしたファイル名をそのまま使って保存する
- 4エ アップロードされたファイルをウイルススキャンする
正解
3. ウ ユーザがアップロードしたファイル名をそのまま使って保存する
詳しい解説を見る解説を閉じる
解説
正解はウ。本問は「最も不適切なもの」を選ぶ。ユーザが指定したファイル名をそのまま保存に使うと、「../」を含む名前によるディレクトリトラバーサル(意図しない場所への書込み)や、実行可能な拡張子・特殊文字を悪用した攻撃の足がかりになる。サーバ側で一意のIDやランダムな名前に付け替えて保存するのが定石である。アの拡張子制限は実行ファイルなど危険なファイルの受入れを防ぐ適切な対策、イのWebルート外への保存はアップロードされたファイルにURLで直接アクセスされ実行されることを防ぐ適切な対策、エのウイルススキャンはマルウェア混入を検出する適切な対策である。アップロード機能の防御は「拡張子検証・保存場所の隔離・ファイル名の無害化・スキャン」の多層防御で考えるのが頻出の整理である。
一問一答
科目A 180問+科目B 60問