HTTPヘッダーインジェクションについて説明していきます。
■概要
Webアプリケーションの通信で利用されるHTTPでは、HTTPヘッダと呼ばれる「どのような情報がリクエストされ、どのようなコンテンツを返すか」を定義する役割があります。
Webアプリケーションでは、ユーザからの様々な入力値を処理しますが、入力値の処理に不備があったままHTTPヘッダに出力する場合、攻撃者によってHTTPレスポンスヘッダに任意のヘッダフィールドを追加したり、レスポンスボディに任意のコンテンツを追加される可能性があります。
これを「HTTPヘッダーインジェクション」と呼びます。
■想定される被害
HTTPヘッダーインジェクションによってユーザが悪意あるサイトに誘導され、以下のような被害にあう可能性があります。
どのような被害を受ける可能性があるかあらかじめ把握しておき、攻撃を受けないように対策を検討することが必要です。
・Set-Cookieヘッダを追加し、Cookieを任意の値に設定する。
・レスポンスボディを任意のコンテンツに改ざんする。
■対策
HTTPヘッダーインジェクションの対策として挙げられるものは以下のようなものとなります。
・ユーザ入力値をレスポンスヘッダに含めない。
・改行文字を出力しない。