单页面网站带后台,国网公司网站,工信部isp申请网站,wordpress多用途主题推荐Node.js 是开源、跨平台的 JavaScript 运行时环境。CONTINUATION泛洪攻击被发现存在于多个HTTP/2协议实现中。
在受影响版本中#xff0c;由于Node.js针对HTTP/2协议的实现不当#xff0c;未正确处理多个CONTINUATION帧的情况#xff0c;在node::http2::Http2Session::~Htt…Node.js 是开源、跨平台的 JavaScript 运行时环境。CONTINUATION泛洪攻击被发现存在于多个HTTP/2协议实现中。
在受影响版本中由于Node.js针对HTTP/2协议的实现不当未正确处理多个CONTINUATION帧的情况在node::http2::Http2Session::~Http2Session()中存在条件竞争可触发断言。
攻击者可以通过向发送HEADERS帧后连续发送大量CONTINUATION帧造成服务端内存耗尽拒绝服务。
HTTP/2和HTTP/1.x如HTTP/1.1是互联网上用于传输网页和其他数据的两个主要版本的HTTP协议。它们之间存在一些关键区别主要包括以下几点 多路复用MultiplexingHTTP/2支持多路复用这意味着在单个TCP连接上可以同时处理多个请求和响应。这有助于减少网络延迟提高页面加载速度。相比之下HTTP/1.x每个请求和响应需要一个单独的TCP连接这可能导致连接开销和潜在的性能问题。 二进制协议HTTP/2是一个二进制协议而HTTP/1.x是基于文本的协议。二进制协议更易于解析可以提高传输效率。 压缩HTTP头部Header CompressionHTTP/2使用HPACK压缩算法来压缩HTTP头部从而减少传输数据量。这有助于提高传输速度和性能。而HTTP/1.x的头部信息没有压缩可能导致额外的传输开销。 服务器推送Server PushHTTP/2支持服务器推送这意味着服务器可以在客户端请求之前主动发送资源从而减少往返时间和提高性能。HTTP/1.x不支持服务器推送。 请求优先级Request PrioritizationHTTP/2允许客户端为请求设置优先级这有助于更有效地利用网络资源。HTTP/1.x没有这个功能。 流控制Flow ControlHTTP/2提供了基于流的控制机制可以防止发送方向接收方发送过多的数据从而避免网络拥塞。HTTP/1.x没有类似的流控制机制。
总之HTTP/2相较于HTTP/1.x在性能、传输效率和功能方面都有显著的改进。许多现代浏览器和服务器已经支持HTTP/2使得网页加载更快网络传输更高效。
HTTP/2的标头Header和HTTP/1.x的请求头Request Header在概念上是类似的它们都包含了在HTTP请求和响应中传输的元数据。然而HTTP/2在传输和处理这些头部信息时采用了不同的方法。
在HTTP/1.x中请求头和响应头是以纯文本形式传输的每个头部字段由一个名称和一个值组成名称和值之间用冒号分隔。头部字段之间用回车换行符CRLF分隔最后一个头部字段后再跟一个回车换行符表示头部结束。
在HTTP/2中头部信息采用了二进制格式进行传输这使得解析和处理更加高效。此外HTTP/2还引入了HPACK压缩算法对头部信息进行压缩以减少传输的数据量。这意味着HTTP/2的头部信息在传输过程中会比HTTP/1.x的请求头更加紧凑和高效。
虽然HTTP/2在传输和处理头部信息方面有所改进但它仍然支持HTTP/1.x中的大多数头部字段。这意味着从功能和用途的角度来看HTTP/2的头部和HTTP/1.x的请求头是相似的。例如它们都可以包含诸如User-Agent、Accept-Encoding和Cookie等头部字段。
在HTTP/2协议中HEADERS帧用于传输HTTP请求或响应的头部信息。这包括一系列的头部字段每个字段都包含一个名称和一个值。这些字段提供了关于请求或响应的元数据例如目标URL、请求方法、响应状态码、内容类型等。
以下是一些可能包含在HEADERS帧中的头部字段
:methodHTTP请求方法如GET、POST等。:schemeURL的协议方案通常是http或https。:authority请求的目标服务器的主机名和可能的端口号。:path请求的目标URL的路径和查询字符串。:statusHTTP响应的状态码如200表示成功404表示未找到等。content-type响应体的媒体类型。content-length响应体的长度以字节为单位。cookie包含HTTP cookie的头部字段用于维护客户端和服务器之间的状态。
除了这些预定义的头部字段外HEADERS帧还可以包含其他自定义的头部字段。例如一些Web应用可能会使用自定义的头部字段来传输特定的应用数据或配置信息。
需要注意的是HTTP/2协议使用HPACK算法对头部信息进行压缩以减少传输的数据量。这意味着在网络上传输的HEADERS帧实际上包含的是压缩后的头部字段接收方需要对其进行解压缩以恢复原始的头部信息。
参考 https://nowotarski.info/http2-continuation-flood-technical-details/