安全なウェブサイトの作り方:IPA 独立行政法人 情報処理推進機構の、「HTTP ヘッダ・インジェクション」から一部抜粋する。(この資料はPDFでしか提供されていない)
注意が必要なウェブサイトの特徴
運営主体やウェブサイトの性質を問わず、HTTP レスポンスヘッダのフィールド値(Location ヘッダ、 Set-Cookie ヘッダ等)を、外部から渡されるパラメータの値から動的に生成する実装のウェブアプリケーションに注意が必要な問題です。Cookie を利用してログインのセッション管理を行っているサイトや、サイト内にリバースプロキシとしてキャッシュサーバを構築しているサイトは、特に注意が必要です。
根本的解決
- (i)-a ヘッダの出力を直接行わず、ウェブアプリケーションの実行環境や言語に用意されているヘッダ出力用APIを使用する。
- (i)-b 改行コードを適切に処理するヘッダ出力用APIを利用できない場合は、改行を許可しないよう、開発者自身で適切な処理を実装する。
保険的対策
- (ii) 外部からの入力の全てについて、改行コードを削除する。
CWE
- CWE-113: Improper Neutralization of CRLF Sequences in HTTP Headers (‘HTTP Response Splitting’)
参考URL
- IPA: 知っていますか?脆弱性 (ぜいじゃくせい) 「7. HTTP ヘッダ・インジェクション」