7.5.8. クエリ要素のあいまいな扱い (Ambiguous Handling of Query Elements)
7.5.8. クエリ要素のあいまいな扱い (Ambiguous Handling of Query Elements)
[HTMLURL] の Section 5 (「application/x-www-form-urlencoded」) で定義される HTML フォームパラメータ形式は広く展開され, 多くのアプリケーションフレームワークでサポートされている. 便宜上, 特に Content-Type が "application/x-www-form-urlencoded" である POST メッセージについて, これらのフレームワークの一部は HTTP クエリにあるクエリパラメータとメッセージ本文にあるものを結合する. Section 2.2.8 で定義される @query-param 派生コンポーネント識別子は, 値をリクエストのターゲット URI のクエリ部分からのみ取る. したがって, 攻撃者は署名されたクエリパラメータを署名されていないフォームパラメータで覆い隠したり置き換えたりするか, その逆によりリクエストのクエリパラメータを侵害しうる.
これに対処するため, アプリケーションは, 署名ベースとアプリケーションで用いる値が一貫した文脈, この場合はターゲット URI のクエリコンポーネントから取られることを保証する必要がある. さらに HTTP リクエストに本文がある場合, Section 7.2.8 で論じるとおり, アプリケーションはメッセージ本文にも署名すべきである.