# 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要素では開けない仕組みを実装する