一种防止HTTP的GET请求被劫持的方法技术

技术编号:36804267 阅读:15 留言:0更新日期:2023-03-09 00:05
本发明专利技术公开了一种防止HTTP的GET请求被劫持的方法,包括:在用户浏览器中输入http请求,向网站web服务器发起TCP请求;网站web服务器收到TCP请求后,与用户浏览器进行三次握手,并向用户浏览器返回JS代码;用户浏览器执行JS代码,通过JS代码获取当前用户访问的至少一个参数;用户浏览器将该至少一个参数以https的方式传递给网站web服务器;网站web服务器根据获得的至少一个参数判断用户访问的地址需求,并返回用户所需的网页结果。本发明专利技术无GET请求的实现,是在tcp连接建立完成后,网站服务器主动给浏览器发送网页报文,浏览器根据返回的内容进行跳转,进而实现反劫持。进而实现反劫持。进而实现反劫持。

【技术实现步骤摘要】
一种防止HTTP的GET请求被劫持的方法


[0001]本专利技术涉及互联网
,更具体的说是涉及一种防止HTTP的GET请求被劫持的方法。

技术介绍

[0002]当用户在浏览器输入网站域名,发送了HTTP的GET请求后,由于HTTP的GET请求为明文方式,网络链路中的路由器会首先收到此次HTTP的GET请求,之后路由器的旁路设备标记此TCP连接为HTTP协议,之后可以抢在网站服务器返回数据之前发送HTTP协议的302代码进行下载文件的劫持,浏览器收到302代码后就会跳转到错误的文件下载地址下载软件了,随后网站服务器的真正数据到达后反而会被丢弃。或者,旁路设备在标记此TCP连接为HTTP协议后,直接返回修改后的HTML代码,导致浏览器中被插入了广告或恶意代码,随后网站服务器的真正数据到达后最终也是被丢弃。
[0003]目前虽然可以采用HTTPS方式进行加密防止劫持,但是多数用户在浏览器输入网址时,只输入域名,并没有输入https://,这样导致浏览器依然使用HTTP方式访问,导致网站依然被劫持。
[0004]因此,如何提供一种能够防止HTTP的GET请求被劫持的方法是本领域技术人员亟需解决的技术问题。

技术实现思路

[0005]有鉴于此,本专利技术提供了一种防止HTTP的GET请求被劫持的方法,流量中无GET请求的实现,是在tcp连接建立完成后,网站服务器主动给浏览器发送网页报文,然后浏览器根据返回的内容进行跳转,进而实现反劫持。
[0006]为了实现上述目的,本专利技术采用如下技术方案:
[0007]一种防止HTTP的GET请求被劫持的方法,包括以下步骤:
[0008]在用户浏览器中输入http请求,向网站web服务器发起TCP请求;
[0009]网站web服务器收到TCP请求后,与用户浏览器进行三次握手,并向用户浏览器返回JS代码;
[0010]用户浏览器执行JS代码,通过JS代码获取当前用户访问的至少一个参数;
[0011]用户浏览器将该至少一个参数以https的方式传递给网站web服务器;
[0012]网站web服务器根据获得的至少一个参数判断用户访问的地址需求,并返回用户所需的网页结果。
[0013]进一步的,网站web服务器与用户浏览器进行三次握手的过程包括:
[0014]用户浏览器发送一个SYN标志位置1的TCP包,同时选择一个初始序列号seq=x,用户浏览器进入同步已发送状态;
[0015]网站web服务器收到请求报文后,如果同意连接,则发出确认报文;确认报文中ACK=1,SYN=1,确认号ack=x+1,同时为自己初始化一个序列号seq=y,此时,网站web服务器
进入到同步收到状态;
[0016]用户浏览器收到确认报文后,向网站web服务器再次发出确认报文,发出的确认报文的ACK=1,确认号ack=y+1,自己的序列号seq=x+1,此时,用户浏览器与网站web服务器间的连接建立,用户浏览器进入已建立连接状态。
[0017]进一步的,JS代码获取的当前用户访问的至少一个参数包括:用户输入的域名。
[0018]进一步的,JS代码获取的当前用户访问的至少一个参数还包括:用户输入的路径/文件名以及用户输入的其他参数。
[0019]进一步的,通过JS代码window.location.host获取用户输入的域名,通过JS代码window.location.pathname获取用户输入的路径/文件名,通过JS代码window.location.search获取用户输入的其他参数。
[0020]经由上述的技术方案可知,与现有技术相比,本专利技术公开提供了一种防止HTTP的GET请求被劫持的方法,用户浏览器与网站web服务器建立连接后,用户浏览器不主动发起get请求,而是网站web服务器主动返回JS代码,通过JS代码获取用户要访问的完整地址并进行跳转访问,由于流量中无get请求,因此劫持服务器读取不到GET请求的内容,所以无法被劫持,进而解决了直接输入域名被劫持的问题。
附图说明
[0021]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0022]图1为本专利技术提供的防止HTTP的GET请求被劫持的方法的流程图。
具体实施方式
[0023]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0024]如图1所示,本专利技术实施例公开了一种防止HTTP的GET请求被劫持的方法,包括以下步骤:
[0025]S1、在用户浏览器中输入http请求,向网站web服务器发起TCP请求;
[0026]S2、网站web服务器收到TCP请求后,与用户浏览器进行三次握手,并向用户浏览器返回JS代码;
[0027]S3、用户浏览器执行JS代码,通过JS代码获取当前用户访问的至少一个参数;
[0028]S4、用户浏览器将该至少一个参数以https的方式传递给网站web服务器;HTTPS是在HTTP上建立SSL加密层,并对传输数据进行加密,是HTTP协议的安全版,本身就可以防止被劫持。
[0029]S5、网站web服务器根据获得的至少一个参数判断用户访问的地址需求,并返回用户所需的网页结果。
[0030]由于目前进行http访问时,用户浏览器与web服务器建立连接之后,用户浏览器主动发起get请求,请求http头中的host字段带有需要访问的网址信息,劫持服务器获取到http请求后,根据GET请求中的HOST判断应该劫持到什么样的网站,
[0031]劫持服务器在正常的web服务器之前返回,指定的网页内容,导致原网页在返回后失效,所以用户实际返回的是劫持服务器返回的内容。
[0032]本专利技术实施例中,用户浏览器与web服务器建立连接之后,用户浏览器不发起get请求,劫持服务器获取不到GET请求的内容,网站web服务器主动返回JS代码,通过JS代码获取用户要访问的完整地址并进行跳转访问,由于流量中无get请求,因此劫持服务器读取不到GET请求的内容,所以无法被劫持,进而解决了直接输入域名被劫持的问题
[0033]在一个具体实施例中,网站web服务器与用户浏览器进行三次握手的过程包括:
[0034]用户浏览器发送一个SYN标志位置1的TCP包,同时选择一个初始序列号seq=x,用户浏览器进入同步已发送状态;
[0035]网站web服务器收到请求报文后,如果同意连接,则发出确认报文;确认报本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种防止HTTP的GET请求被劫持的方法,其特征在于,包括以下步骤:在用户浏览器中输入http请求,向网站web服务器发起TCP请求;网站web服务器收到TCP请求后,与用户浏览器进行三次握手,并向用户浏览器返回JS代码;用户浏览器执行JS代码,通过JS代码获取当前用户访问的至少一个参数;用户浏览器将该至少一个参数以https的方式传递给网站web服务器;网站web服务器根据获得的至少一个参数判断用户访问的地址需求,并返回用户所需的网页结果。2.根据权利要求1所述的一种防止HTTP的GET请求被劫持的方法,其特征在于,网站web服务器与用户浏览器进行三次握手的过程包括:用户浏览器发送一个SYN标志位置1的TCP包,同时选择一个初始序列号seq=x,用户浏览器进入同步已发送状态;网站web服务器收到请求报文后,如果同意连接,则发出确认报文;确认报文中ACK=1,SYN=1,确认号ack=x+1,同时为自己初始化一个序列号seq=y,此时,网站web服务器进入到...

【专利技术属性】
技术研发人员:孟海彬
申请(专利权)人:加客云科技河北有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1