10. 安全考虑
10.1 Server Authority
HTTP/2 依赖 HTTP/1.1 对 authority 的定义, 以判断某个服务器是否对给定请求具有权威性.
10.2 跨协议攻击
HTTP/2 使用带 ALPN 的 TLS, 以防范 cleartext ports 上的跨协议攻击.
10.3 Intermediary 封装攻击
HTTP/2 header field 编码允许表达在 HTTP/1.1 中不是有效 field names 的名称.
10.4 Pushed Responses 的可缓存性
Pushed responses 没有来自客户端的显式请求. 客户端无法验证某个 pushed response 是否为该请求的适当表示.
10.5 拒绝服务考虑
10.5.1 Header Block Size 限制
大型或无界请求可能被用来使服务器过载. Header block size 可以通过 SETTINGS_MAX_HEADER_LIST_SIZE 加以限制.
10.5.2 CONNECT 问题
CONNECT 方法可用于创建隧道. 服务器 SHOULD 监控流量规模和并发连接数量.
10.6 Compression 的使用
Compression 可能暴露有关加密数据的信息. 实现在使用 compression 时必须谨慎.
10.7 Padding 的使用
Padding 可用于隐藏 frame content 的实际大小. 不过, padding 不能替代适当的加密.
10.8 隐私考虑
HTTP/2 的若干特征为观察者提供了机会, 使其能够随时间关联单个客户端或服务器的行为.