一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种检测客户端与服务端之间存在代理服务的方法及终端与流程

2022-02-22 08:15:36 来源:中国专利 TAG:


1.本发明涉及web安全防范技术领域,具体涉及一种检测客户端与服务端之间存在代理服务的方法及终端。


背景技术:

2.移动互联网蓬勃发展的今天,存在有各种各样的web代理服务器,当前情况下,用户在使用代理服务器访问web端时,会由于代理服务器绕开对于ip的限制等,从而造成数据泄露,使得安全防范失效。


技术实现要素:

3.本发明所要解决的技术问题是:提供一种检测客户端与服务端之间存在代理服务的方法及终端,实现了客户端与服务端之间是否存在代理服务器的检测,以避免服务端为存在代理服务的客户端提供web服务而造成数据泄露。
4.为了解决上述技术问题,本发明采用的技术方案为:
5.一种检测客户端与服务端之间存在代理服务的方法,包括步骤:
6.s1、与服务端中基于websocket协议的ws服务建立连接关系,所述ws服务的tcp接收窗口设置为0;
7.s2、初始化ws消息量实例,并向所述服务端发送消息,所述ws消息量实例用于获取未发送成功给所述服务端的消息量;
8.s3、实时检测预设时间内所述ws消息量实例的属性值,若所述ws消息量实例的属性值为0,则客户端与所述服务端之间存在代理服务器。
9.为了解决上述技术问题,本发明提供的另一个技术方案为:
10.一种检测客户端与服务端之间存在代理服务的终端,包括存储器、处理器以及存储在存储器上并可在处理器上执行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
11.s1、与服务端中基于websocket协议的ws服务建立连接关系,所述ws服务的tcp接收窗口设置为0;
12.s2、初始化ws消息量实例,并向所述服务端发送消息,所述ws消息量实例用于获取未发送成功给所述服务端的消息量;
13.s3、实时检测预设时间内所述ws消息量实例的属性值,若所述ws消息量实例的属性值为0,则客户端与所述服务端之间存在代理服务器。
14.本发明的有益效果在于:本发明提供一种检测客户端与服务端之间存在代理服务的方法及终端,基于websocket协议,在服务端中建立ws服务与客户端连接,并将ws服务的tcp接收窗口设置为0,此时当客户端向服务端发送消息时,由于tcp接收窗口为0,则ws服务不会接收客户端发来的任何消息,但对于代理服务器,它是透明的传递数据的媒介,并不会复刻服务端的连接配置,而是会先接收客户端发送而来的信息再进行转发,因此可通过在
预设时间内检测客户端中的ws消息量实例获取的消息量的属性值是否为0从而判断是否存在代理服务器先将客户端发送的信息接收了,即实现了客户端与服务端之间是否存在代理服务器的检测,以在检测到代理服务器之后进行相应的防护措施,避免服务端为存在代理服务的客户端提供web服务而造成数据泄露。
附图说明
15.图1为本发明的一种检测客户端与服务端之间存在代理服务的方法的整体流程图;
16.图2为本发明的一种检测客户端与服务单之间存在代理服务的方法的一具体实施例的流程图;
17.图3为本发明的一种检测客户端与服务端之间存在代理服务的终端的结构示意图。
18.标号说明:
19.1、一种检测客户端与服务端之间存在代理服务的终端;2、存储器;3、处理器。
具体实施方式
20.为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
21.在此之前,为了便于理解本发明的技术方案,对本发明中涉及的英文缩写及名词进行如下说明:
22.1、websocket:一种网络传输协议,可在单个tcp连接上进行全双工通信,文中的ws为其缩写;
23.2、bufferedamount:浏览器端中的websocket的实例,用来获取浏览器未发送出去的消息量;
24.3、msl:为maximum segment lifetime的英文缩写,意为最长报文生存时间。
25.请参照图1及图2,一种检测客户端与服务端之间存在代理服务的方法,包括步骤:
26.s1、与服务端中基于websocket协议的ws服务建立连接关系,所述ws服务的tcp接收窗口设置为0;
27.s2、初始化ws消息量实例,并向所述服务端发送消息,所述ws消息量实例用于获取未发送成功给所述服务端的消息量;
28.s3、实时检测预设时间内所述ws消息量实例的属性值,若所述ws消息量实例的属性值为0,则客户端与所述服务端之间存在代理服务器。
29.由上述描述可知,本发明的有益效果在于:基于websocket协议,在服务端中建立ws服务与客户端连接,并将ws服务的tcp接收窗口设置为0,此时当客户端向服务端发送消息时,由于tcp接收窗口为0,则ws服务不会接收客户端发来的任何消息,但对于代理服务器,它是透明的传递数据的媒介,并不会复刻服务端的连接配置,而是会先接收客户端发送而来的信息再进行转发,因此可通过在预设时间内检测客户端中的ws消息量实例获取的消息量的属性值是否为0从而判断是否存在代理服务器先将客户端发送的信息接收了,即实现了客户端与服务端之间是否存在代理服务器的检测,以在检测到代理服务器之后进行相
应的防护措施,避免服务端为存在代理服务的客户端提供web服务而造成数据泄露。
30.进一步地,所述s2中向所述服务端发送消息,具体为:
31.向所述服务端发送一串随机文本信息。
32.由上述描述可知,客户端向服务端随机发送一串文本信息,避免占用较多线程的同时用于后续实现客户端与服务端之间是否存在代理服务器的检测。
33.进一步地,所述s3具体包括以下步骤:
34.s31、通过所述ws消息量实例获取所述随机文本信息的消息量属性;
35.s32、在所述预设时间内多次检测所述ws消息量实例的属性值,若所述ws消息量实例的属性值由有值变为0,则所述客户端与所述服务端之间存在所述代理服务器,否则所述客户端与所述服务端之间不存在所述代理服务器。
36.由上述描述可知,当客户端发送消息给服务端时,由于tcp窗口设置为0,则此时ws服务拒绝接受客户端发送过来的信息,若此时不存在代理服务器,则该消息应当仍然存放在客户端中,即ws消息量实例的属性值则一直存在有值的情况;而若此时存在代理服务器,则该消息会被代理服务器获取,即ws消息量实例的属性值则会变为0,重复在预设时间内多次检测ws消息量实例的属性值的检测,确保检测是否存在代理服务器的准确性。
37.进一步地,所述预设时间为两倍的最长报文生存时间。
38.由上述描述可知,设置预设时间为两倍的最长报文生存时间,避免出现存在某些代理服务器接收数据缓慢造成某些时间内未获取到客户端发送的消息而造成ws消息量实例的属性值有值而误检测不存在代理服务器的情况,进一步提高检测的准确性。
39.进一步地,所述ws消息量实例为所述客户端上的浏览器在与所述ws服务建立连接关系时设置在所述浏览器上用于与所述ws服务对应的实例。
40.由上述描述可知,当客户端与服务端建立ws通信连接时,客户端上会自动生成与服务端上的ws服务对应的实例,用于获取未发送成功给服务端的消息量,可实时监听客户端是否成功发送消息给服务端。
41.请参照图3,一种检测客户端与服务端之间存在代理服务的终端,包括存储器、处理器以及存储在存储器上并可在处理器上执行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
42.s1、与服务端中基于websocket协议的ws服务建立连接关系,所述ws服务的tcp接收窗口设置为0;
43.s2、初始化ws消息量实例,并向所述服务端发送消息,所述ws消息量实例用于获取未发送成功给所述服务端的消息量;
44.s3、实时检测预设时间内所述ws消息量实例的属性值,若所述ws消息量实例的属性值为0,则客户端与所述服务端之间存在代理服务器。
45.由上述描述可知,本发明的有益效果在于:基于同一技术构思,配合上述的一种检测客户端与服务端之间存在代理服务的方法,提供一种检测客户端与服务端之间存在代理服务的终端,基于websocket协议,在服务端中建立ws服务与客户端连接,并将ws服务的tcp接收窗口设置为0,此时当客户端向服务端发送消息时,由于tcp接收窗口为0,则ws服务不会接收客户端发来的任何消息,但对于代理服务器,它是透明的传递数据的媒介,并不会复刻服务端的连接配置,而是会先接收客户端发送而来的信息再进行转发,因此可通过在预
设时间内检测客户端中的ws消息量实例获取的消息量的属性值是否为0从而判断是否存在代理服务器先将客户端发送的信息接收了,即实现了客户端与服务端之间是否存在代理服务器的检测,以在检测到代理服务器之后进行相应的防护措施,避免服务端为存在代理服务的客户端提供web服务而造成数据泄露。
46.进一步地,所述s2中向所述服务端发送消息,具体为:
47.向所述服务端发送一串随机文本信息。
48.由上述描述可知,客户端向服务端随机发送一串文本信息,避免占用较多线程的同时用于后续实现客户端与服务端之间是否存在代理服务器的检测。
49.进一步地,所述s3具体包括以下步骤:
50.s31、通过所述ws消息量实例获取所述随机文本信息的消息量属性;
51.s32、在所述预设时间内多次检测所述ws消息量实例的属性值,若所述ws消息量实例的属性值由有值变为0,则所述客户端与所述服务端之间存在所述代理服务器,否则所述客户端与所述服务端之间不存在所述代理服务器。
52.由上述描述可知,当客户端发送消息给服务端时,由于tcp窗口设置为0,则此时ws服务拒绝接受客户端发送过来的信息,若此时不存在代理服务器,则该消息应当仍然存放在客户端中,即ws消息量实例的属性值则一直存在有值的情况;而若此时存在代理服务器,则该消息会被代理服务器获取,即ws消息量实例的属性值则会变为0,重复在预设时间内多次检测ws消息量实例的属性值的检测,确保检测是否存在代理服务器的准确性。
53.进一步地,所述预设时间为两倍的最长报文生存时间。
54.由上述描述可知,设置预设时间为两倍的最长报文生存时间,避免出现存在某些代理服务器接收数据缓慢造成某些时间内未获取到客户端发送的消息而造成ws消息量实例的属性值有值而误检测不存在代理服务器的情况,进一步提高检测的准确性。
55.进一步地,所述ws消息量实例为所述客户端上的浏览器在与所述ws服务建立连接关系时设置在所述浏览器上用于与所述ws服务对应的实例。
56.由上述描述可知,当客户端与服务端建立ws通信连接时,客户端上会自动生成与服务端上的ws服务对应的实例,用于获取未发送成功给服务端的消息量,可实时监听客户端是否成功发送消息给服务端。
57.请参照图1,本发明的实施例一为:
58.一种检测客户端与服务端之间存在代理服务的方法,如图1所示,包括步骤:
59.s1、与服务端中基于websocket协议的ws服务建立连接关系,ws服务的tcp接收窗口设置为0。
60.s2、初始化ws消息量实例,并向服务端发送消息,ws消息量实例用于获取未发送成功给服务端的消息量;
61.其中,在本实施例中,步骤s2中向服务端发送消息,具体为向服务端发送一串随机文本信息。
62.当客户端向服务端发送消息时,ws消息量实例因为客户端发送的随机文本信息而处于有值的状态,该值为随机文本信息的消息量。
63.s3、实时检测预设时间内ws消息量实例的属性值,若ws消息量实例的属性值为0,则客户端与服务端之间存在代理服务器。
64.由此,在没有代理服务器的情况下,由于tcp接收窗口为0,则ws服务不会接收客户端发来的任何消息,这样ws消息量实例的属性值就不会发生变化,从而一直为随机文本信息的消息量数值,但对于存在代理服务器的情况,则会先接收客户端发送而来的信息再进行转发,这样ws消息量实例的属性值就会因为随机文本信息发送出去而变为0,因此通过在预设时间内检测客户端中的ws消息量实例获取的消息量的属性值是否为0就能判断客户端与服务端之间是否存在代理服务器的检测,以在检测到代理服务器之后进行相应的防护措施,避免服务端为存在代理服务的客户端提供web服务而造成数据泄露。
65.如图2所示,本发明的实施例二为:
66.一种检测客户端与服务端之间存在代理服务的方法,在上述实施例的基础上,在本实施例中,如图2所示,采用一浏览器作为客户端,以nodejs(基于chromev8引擎的javascript运行环境)为例,创建一个域名为ws:10.0.0.1:8888的ws服务,由于ws服务是建立在服务端上的,此时,可直接将ws服务等同于服务端。
67.此时,先在浏览器端初始化ws消息量实例,并与上述ws服务的域名进行链接,其中,在本实施例中,如图2所示,ws消息量实例具体为客户端上的浏览器在与ws服务建立连接关系时设置在浏览器上用于与ws服务对应的实例bufferedamout,可用于获取客户端未发送成功给服务端的消息量,即实现实时监听客户端是否成功发送消息给服务端。
68.当ws服务与浏览器连接后,设置windowsize为0,即暂停接收内容的状态,在本实施例中,windowsize即为ws服务的tcp接收窗口,将其设置为0后,则ws服务不会接收浏览器发送过来的任何消息。
69.此时,当浏览器向ws服务发送一串随机文本信息,由于ws服务的windowsize为0,则ws服务不会接收该随机文本信息,因此,此时浏览器端的bufferedamount则会获取该随机文本信息的消息量属性。
70.同时,如图2所示,当浏览器与ws服务之间存在代理服务器时,此时浏览器发送给ws服务的随机文本信息则会被代理服务器获取,先存放在代理服务器中等待转发,则此时bufferedamount则会获取到浏览器中已经将随机文本信息发送出去后的空消息量,即bufferedamount的属性值会由该随机文本信息的消息量值变为0;而若浏览器与ws服务之间不存在代理服务器,则bufferedamount中则会一直存在该随机文本信息的消息量,即bufferedamount的属性值不会为0。
71.因此,在本实施例中,预设2msl的时间不断重复多次检测bufferedamount的属性值是否为0,若为0则可确认客户端与服务端之间存在代理服务器,其中2msl为两倍的最长报文生存时间,大约为60s,在本实施例中,设置预设时间为60s,避免出现存在某些代理服务器接收数据缓慢造成某些时间内未获取到客户端发送的消息而造成ws消息量实例的属性值有值而误检测不存在代理服务器的情况,进一步提高检测是否存在代理服务器的准确性。同时,在其他等同实施例中,预设时间也可以根据实际需要而定。
72.请参照图3,本发明的实施例三为:
73.一种检测客户端与服务端之间存在代理服务的终端1,包括存储器2、处理器3以及存储在存储器2上并可在处理器3上运行的计算机程序,处理器3在执行计算机程序时实现如上述实施例一或实施例二中的一种检测客户端与服务端之间存在代理服务的方法中的步骤。
74.综上所述,本发明提供的一种检测客户端与服务端之间存在代理服务的方法及终端,基于websocket协议,在服务端中建立ws服务与客户端连接,并将ws服务的tcp接收窗口设置为0,此时当客户端向服务端发送消息时,由于tcp接收窗口为0,则ws服务不会接收客户端发来的任何消息,但对于代理服务器,它是透明的传递数据的媒介,并不会复刻服务端的连接配置,而是会先接收客户端发送而来的信息再进行转发,因此可通过在预设时间内检测客户端中的ws消息量实例获取的消息量的属性值是否为0从而判断是否存在代理服务器先将客户端发送的信息接收了,即实现了客户端与服务端之间是否存在代理服务器的检测,以在检测到代理服务器之后进行相应的防护措施,避免服务端为存在代理服务的客户端提供web服务而造成数据泄露,其中,预设时间为两倍的最长报文时间且在预设时间内多次检测,避免出现存在某些代理服务器接收数据缓慢造成某些时间内未获取到客户端发送的消息而造成ws消息量实例的属性值有值而误检测不存在代理服务器的情况,进一步提高了检测是否存在代理服务器的准确性。
75.以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献