儿童文学

HTTP2笔记之错误处理和安全

  • 作者:本站
  • 时间:2019-08-13
  • 167人已阅读
您现在的位置:首页 > 儿童诗歌 > 文章
简介 零。 前言这里整理了一下错误和安全相关部分简单记录。 一。 HTTP/2错误1.错误定义HTTP/2定义了两种类型错误:2.错误代码错误代码,32位正整数表示错误原因,RST

	HTTP2笔记之错误处理和安全

零。

前言这里整理了一下错误和安全相关部分简单记录。

一。 HTTP/2错误1.错误定义HTTP/2定义了两种类型错误:2.错误代码错误代码,32位正整数表示错误原因,RST_STREAM和GOAWAY帧中包含。

未知或不支持的错误代码可以选择忽略,或作为INTERNAL_ERROR错误对待都可以。 3.连接错误处理一般来讲连接错误很严重,会导致处理进程无法进行下去,或影响到整个连接的状态。 4.流错误一般来讲具体流上的流错误不会影响到其它流的处理。

5.连接终止TCP连接被关闭或重置时仍有处于"open"或"halfclosed"的流将不能自动重试。 二。

HTTP/2安全注意事项1.跨协议攻击跨协议攻击,字面上理解就很简单,比如攻击者构建HTTP/请求直接转发给仅仅支持HTTP/2的服务器,以期待获取攻击效果。

这里有一篇讲解跨协议攻击的文章:TLS的加密机制使得攻击者很难获得明文,另外TLS的ALPN协议扩展可以很轻松处理请求是否需要作为HTTP/2请求进行处理,总之可有效阻止对基于TLS的其它协议攻击。

基于标准版TCP没有TLS和ALPN的帮忙,客户端所发送连接序言前缀为PRI字符串用来混淆HTTP/服务器,但对其它协议没有提供保护,仅限于此。

但在处理时,若接收到HTTP/的请求,没有包含Upgrade升级字段,则需要认为是一个跨协议攻击。

总之,程序要尽可能的健壮,容错,针对非法的请求,直接关闭对方连接。

2.中介端数据转换封装的攻击中介所做的HTTP/和HTTP/2之间转换,会存在攻击点:解决方式,一旦发现非法头字段名称,以及非法头字段值,都作为不完整、残缺数据对待,或丢弃,或忽略。 3.推送内容的缓存推送内容有保证的服务器提供,是否缓存由头字段Cache-Control控制。

但若服务器上多租户形式(SAAS),每一个租户使用一小部分URL空间,比如,,服务器需要确保没有授权的租户不能够推送超于预期的资源,覆盖已有内容。 原始服务器没有被授权使用推送,既不能够违规发送推送,也不能够被缓存。

4.拒绝服务攻击注意事项总之,诸如SETTINGS帧、小帧或空帧,报头压缩被合理滥用时,表明上看符合逻辑,会造成资源过度消耗。

这需要服务器端监控跟踪到此种行为,并且设置使用数量的上限,一旦发现直接报ENHANCE_YOUR_CALM类型连接错误。 5.报头块大小限制报头块过大导致实现需要维护大量的状态开销。

另外,根据报头字段进行路由的情况,若此报头字段出现在一系列报头块帧的最后一个帧里面,可能会导致无法正常路由到目的地。 若被缓存会导致耗费大量的内存。 这需要设置SETTINGS_MAX_HEADER_LIST_SIZE参数限制报头最大值,以尽可能的避免出现以上情况。 服务器一旦接收到超过报头限制请求,需要响应一个431(请求头过大)HTTP状态码,客户端呢可直接丢掉响应。 6.压缩使用的安全隐患7.填充使用的安全隐患一般来讲,填充可用来混淆帧的真实负载长度,稍加保护,降低攻击的可能性。

但若不当的填充策略:固定填充数、可轻松推导出填充规则等情况都会降低保护的力度,都有可能会被攻击者破解。 中介设备应该保留DATA帧的填充(需要避免如上所述一些情况),但可丢弃HEADERS和PUSH_PROMISE帧的填充。

三。 TLSHTTP/2加密建立在TLS基础,关于TLS,维基百科上有解释:摘取一张图,可说明基于ALPN协议扩展定义的协商流程:其它要求:四。

小结这里简单记录HTTP/2错误和安全相关事项,本系列规范学习到此告一段落。

再超值提供一个近期2015年有效的9折优惠码:10off2015作为码农,严重推荐!postedon2015-03-2415:27阅读(5545)所属分类:。

Top