7.5.8. Ambiguous Handling of Query Elements (查询元素处理的歧义)
7.5.8. Ambiguous Handling of Query Elements (查询元素处理的歧义)
[HTMLURL] 第 5 节 ("application/x-www-form-urlencoded") 定义的 HTML 表单参数格式广泛部署, 许多应用框架支持. 为方便, 其中某些框架特别合并 HTTP 查询中找到的查询参数与消息内容中找到的参数, 特别是对 Content-Type 为 application/x-www-form-urlencoded 的 POST 消息. 第 2.2.8 节定义的 @query-param 派生组成部分标识符仅从请求的 target URI 的查询部分取值. 因此, 攻击者可能通过用未签名的表单参数覆盖已签名的查询参数或反之, 对请求中的已签名查询参数进行遮蔽或替换.
为对抗此点, 应用需要确保用于签名基与应用的值从一致上下文抽取, 此情况下为 target URI 的查询组成部分. 此外, 当 HTTP 请求具有内容时, 应用还应签名消息内容, 见第 7.2.8 节.