---
# System prepended metadata

title: 2020/7/25 upperlayer progress

---

# 2020/7/25 upperlayer progress
## 徳丸本
p300-334
項目
- OSコマンドインジェクション
- ファイルアップロードにまつわる問題


### OSコマンドインジェクションの対策
- osコマンド呼び出しを使わない実装方法にする
- シェル呼び出しのある関数(system,exec)の利用を避ける
- 外部から入力された文字列をコマンドラインのパラメータに渡さない
- OSコマンドに渡すパラメータを安全な関数によりエスケープする

### ファイルアップロードにまつわる問題
#### アップロードファイルによるサーバ側スクリプト実行
アップロードしたファイルが公開ディレクトリに保存されている
拡張子として「php][asp][aspx][jsp]などの拡張子が利用できる
- 対策
    - 公開ディレクトリに保存しないこと
    - スクリプト実行可能な拡張子を使えないようにすること

#### ファイルダウンロードによるXSS
Content-typeの誤った設定が原因となっている。ブラウザがファイルをhtmlと判断してしまうことで脆弱性となる。
- 対策
    - content-typeを正しく設定する
    - レスポンスヘッダX-content-type-options: nosniffにする
    
#### pdfのFormCalcによるコンテンツハイジャック
ieとadobe acrobat readerが必要なため実証できなった
- 概要
    formcalcと呼ばれるpdfのスクリプトがあり、その中のURL関数を利用してHTTPリクエストを呼び出す。
    
- 対策
ブラウザのacrobat readerプラグインでpdfデータを開かなければよい。
    - pdfファイルはブラウザ内で開かずダウンロードを強制する
    - pdfをobject,embed要素では開けない仕組みを実装する
    