背景:生产联调验收时,商户发送的http请求返回connection reset错误。通过排查网络问题、服务端问题、客户端问题最终解决。
网络排查:
1.抓包看双方是否成功建立连接--成功
2.telnet、curl命令看服务端是否成功返回--成功
服务端问题:
通过postman向生产环境直接发起请求看是否成功返回--成功
客户端问题:
查看整个报文请求(包括报文头和报文体),发现报文头header中Host参数被修改,导致响应connetction reset错误。
在request请求中,Host参数在HTTP/1.1版本中是默认携带的,它表示要访问的目标主机,如访问百度时的Host参数:
Host: www.baidu.com
Host字段在HTTP报文中起着指定请求目标服务器的作用,使得多个虚拟主机可以共享同一个IP地址,并确保请求被正确地路由到目标站点。
但是host参数也会带来相应的风险即host注入问题,通常服务端会检测Host值并做相应的处理来防范这种风险,因此当要访问的域名和Host中上送的域名不一致时也不难理解服务端响应connection reset错误了。
host注入风险参考博文:让你成为网络世界中有破坏力的人-HTTP报文HOST头攻击_host攻击-CSDN博客
                  
                  
                  
                  
                            
文章讲述了在生产联调过程中,商户HTTP请求返回connectionreset错误的排查过程。问题出在客户端的Host参数被修改,导致与实际访问域名不符,从而触发服务端的Host注入风险防护机制。通过网络排查、服务端验证和理解Host注入原理,最终解决了问题。
          
      
          
                
                
                
                
              
                
                
                
                
                
              
                
                
              
            
                  
					6917
					
被折叠的  条评论
		 为什么被折叠?
		 
		 
		
    
  
    
  
            


            