在http2中,如果客户端忽略服务器的设置框架,服务器应该怎么做?

问题描述 投票:1回答:1

[当连接数很多时,我们想通过设置框中的SETTINGS_HEADER_TABLE_SIZE来减小动态表的大小。如果客户端忽略设置框架,并且不发送带有ack flag的设置框架,则服务器将使用默认值(4096个八位字节)吗?如果是,则客户端可以发送许多动态值为4096个八位字节的请求收到服务器设置框架后的表格。这可能会导致服务器的内存使用过多。如何避免这种情况?

http2
1个回答
1
投票

客户端must及时应用设置并发回设置确认,这不是可选的。客户端的任何其他行为均不符合要求,在这种情况下,服务器可以关闭连接。对于客户端徘徊太长时间而未确认设置的特定情况,服务器可以使用GoAway框架(原因为SETTINGS_TIMEOUT)关闭连接。

另一件事是,对于HTTP / 2连接,HPACK动态表是“全局”的。因此,攻击者真正滥用默认大小的唯一方法是打开许多不同的连接,而不是通过在同一连接上发出许多请求。在我看来,您始终想限制来自单个IP地址的连接数量,否则攻击者甚至不需要僵尸网络即可对您的服务器执行DDOS攻击。

将动态表的大小减小到4096字节以下可能会增加标头流量,并且可能会适得其反。

© www.soinside.com 2019 - 2024. All rights reserved.