---
# System prepended metadata

title: 2020/07/21 upper layer progress

---

# 2020/07/21 upper layer progress


## 徳丸本
p268~p299。メールヘッダの脆弱性、ファイル処理の脆弱性、OSコマンドインジェクションの脆弱性の途中まで。



### メールヘッダの脆弱性
---
#### よく知られたメール送信の問題
- メールヘッダ・インジェクションの脆弱性
宛先や件名等、メールヘッダを弄ることで任意のものに書き換え偽装、改ざん

- hiddenパラメータによる宛先保持

- メールサーバによる第三者中継
第三者中継の許されている環境下でのフィルタ回避

#### 対策
- メール送信には専用のライブラリを使用する
- 外部からのパラメータをメールヘッダに含ませないようにする or 外部からのパラメータには改行を含まないようにメール送信時にチェックする

### ファイル処理の脆弱性
---
#### ディレクトリトラバーサル
サービス側が想定していないファイルアクセスを行う

##### 脆弱性の原因
- ファイル名を外部から指定することができる
- ファイル名として、絶対パスや相対パスの形で異なるディレクトリを指定できる
- 組みたてたファイル名に対するアクセスの可否をチェックしていない

##### 対策
- 外部からファイル名を指定できる仕様を避ける
- ファイル名にディレクトリ名が含まれないようにする
- ファイル名を英数字に限定する

#### 意図しないファイル公開

##### 原因
- ファイルが公開ディレクトリに置かれている
- ファイルに対するURLを知る手段がある
    - ディレクトリ・リスティングが有効
    - ファイル名が日付やユーザ名、連番等推測可能
    - user.txtやdata.txt等ありがちな名前
    - エラーメッセージや他の脆弱性によりファイルパスが分かる
    - 外部サイトからリンクされる等で検索エンジンに登録される
- ファイルに対するアクセス制限が掛かっていない

##### 対策
- アプリケーションの設計時に、ファイルの安全な格納場所を決める
- レンタルサーバを契約する場合は非公開ディレクトリが使用できることを確認する
