行为差异示例
行为差异示例
?role=user&role=admin
PHP 默认取最后一个(admin)
JSP/Servlet 默认取第一个(user)
Node/Express 变成数组 ['user','admin']
校验组件与实际使用方取到的值可能不同防护动作
防护动作
1. 网关层统一策略:重复参数直接拒绝或规范化
2. 应用层显式声明单值语义
3. 安全校验与业务取值使用同一解析结果涉及权限与金额的参数要统一解析口径,避免安全组件与业务组件各看各的。
同名参数重复出现时,不同技术栈取值行为不一致(取第一个、取最后一个、取数组),前后端解析差异可能造成校验被绕过;防护是明确参数策略并在网关层拒绝重复参数。
?role=user&role=admin
PHP 默认取最后一个(admin)
JSP/Servlet 默认取第一个(user)
Node/Express 变成数组 ['user','admin']
校验组件与实际使用方取到的值可能不同1. 网关层统一策略:重复参数直接拒绝或规范化
2. 应用层显式声明单值语义
3. 安全校验与业务取值使用同一解析结果