跳到主要内容

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 的若干特征为观察者提供了机会, 使其能够随时间关联单个客户端或服务器的行为.