公開日:2013年3月20日
最終更新日:2020年8月13日
最終更新日:2020年8月13日
ディレクトリ・トラバーサルと対策
ディレクトリ・トラバーサルとは
ディレクトリ・トラバーサルとは、リクエストのパスに不正な内容を指定することで、本来アクセス権のないファイルを閲覧、改ざん、削除されてしまう脆弱性のことです。
ディレクトリ・トラバーサルの対策
- 外部からのパラメーターでファイル名を直接指定しない
- ファイルを開く場合は、固定ディレクトリ+ファイル名にする
■外部からのパラメーターでファイル名を直接指定しない
外部からのパラメーターでファイル名を直接指定すると、パラメーターが改ざんされたり、不正なパスを指定される可能性があるため、ファイル名を指定しない仕様に変更します。例えば、以下のようにします。
- ファイル名を固定にする
- ファイル名を番号などで間接的に指定する
■ファイルを開く場合は、固定ディレクトリ+ファイル名にする
固定ディレクトリのパスに、パラメーターからパスを除いたファイル名を加えてパスを作成するようにします。例えば、入力パラメーターが、「../../../etc/hosts」であれば、「/var/files/」+「hosts」とパスを作成することで、攻撃を無効化します。
- ファイルのアクセス権を正しく設定する
- ファイル名のチェックを行う
■ファイルのアクセス権を正しく設定する
ファイルのアクセス権を正しく設定することで、ファイルへのアクセスを防ぐことができる場合があります。
■ファイル名のチェックを行う
ファイル名に、「/」、「../」、「..\」等のパスで利用する文字列を検出した場合には処理を中止します。但し、チェックのタイミングにより URL エンコードされている場合があるので、タイミングに気をつける必要があります。
参考
Webアプリケーションセキュリティに関する記事は、以下のページにまとまっています。ぜひご確認ください。
スポンサーリンク
カテゴリー:Webアプリケーションセキュリティ対策
コメントを残す