掌桥专利:专业的专利平台
掌桥专利
首页

一种资源获取方法及装置

文献发布时间:2023-06-19 18:34:06


一种资源获取方法及装置

技术领域

本申请涉及安全技术领域,尤其涉及一种资源获取方法及装置。

背景技术

随着互联网电视终端业务的发展,盗链现象猖獗,盗链网站经常利用正规账号获取资源地址,然后将资源地址发布到网络上对外提供播放,这种盗链行为直接导致视频产权方需要为盗链用户支付大量的带宽成本却没有任何收益,大大损害了视频产权方的利益。

现有的防盗链方法中,通过使用请求有效时间的方式,向数据库写入临时访问用户名与验证密码,如果超过连接时间,则请求地址失效,例如一个视频有三个小时,那请求有效时间必须支持三个小时,而在这三个小时内缓存的视频资源就可能通过直接复制请求而被广泛盗链。

发明内容

本申请实施例提供了一种资源获取方法及装置,可以避免因为抓包截获请求而被盗链的情况。

本申请第一方面提供了一种资源获取方法,应用于客户端,包括:

接收登录服务器发送的验证串和密钥;

对所述密钥进行解密,得到私钥;

向缓存服务器发送资源请求字符串,所述资源请求字符串包括利用所述私钥加密的资源字符串和所述验证串;

接收所述缓存服务器返回的资源,其中,所述资源为所述缓存服务器对所述验证串进行解码得到公钥,并根据所述公钥解密所述加密的资源字符串得到解密后的资源字符串,获取与所述解密后的资源字符串对应的资源。

可选的,所述接收登录服务器发送的验证串和密钥前,所述方法,还包括:

连接所述登录服务器,以使得所述登录服务器对使用所述客户端的用户鉴权,当鉴权通过后,则向所述客户端返回验证串和密钥。

可选的,所述对所述密钥进行解密,得到私钥,包括:

根据与登录服务器采用的加密方法对应的解密方法对所述密钥进行解密,得到所述私钥。

可选的,所述资源请求字符串,还包括:时间戳。

可选的,所述资源为索引文件,所述方法,还包括:

当接收所述索引文件后,从所述索引文件中提取分片字符串;

根据所述分片字符串向所述缓存服务器发送分片请求字符串,所述分片请求字符串包括利用所述私钥加密的分片字符串和所述验证串;

接收所述缓存服务器返回的分片文件,其中所述分片文件为所述缓存服务器对所述验证串进行解码得到公钥,并根据所述公钥解密所述加密的分片字符串,得到与解密后的分片字符串对应的分片文件。

本申请第二方面提供了一种资源获取方法,应用于缓存服务器,所述方法,包括:

接收客户端发送的资源请求字符串,所述资源请求字符串包括利用私钥加密的资源字符串和验证串;

对所述验证串进行解码,得到公钥和公钥有效期;

根据所述公钥有效期判断用户登录信息是否过期,当所述用户登录信息未过期时,则根据所述公钥对所述加密的资源字符串进行解密,得到解密后的资源字符串;

将与所述解密后的资源字符串对应的资源发送给客户端。

可选的,所述根据所述公钥对所述加密的资源字符串进行解密后,所述方法,还包括:

若解密成功,则判断所述资源请求字符串中的时间戳与缓存服务器中的时间戳的差值,若所述差值大于预设的请求有效期,则拒绝返回所述资源;

若解密失败,则拒绝返回所述资源。

可选的,所述方法,还包括:

接收客户端发送的分片请求字符串,所述分片请求字符串包括利用私钥加密的分片字符串和所述验证串;

对所述验证串进行解码,得到公钥和公钥有效期;

根据所述公钥有效期判断用户登录信息是否过期,当所述用户登录信息未过期时,则根据所述公钥对所述加密的分片字符串进行解密,得到解密后的分片字符串;

将与所述解密后的分片字符串对应的分片文件发送给客户端。

本申请第三方面提供了一种客户端,所述客户端,包括:

接收单元,用于接收登录服务器发送的验证串和密钥;

解密单元,用于对所述密钥进行解密,得到私钥;

发送单元,用于向缓存服务器发送资源请求字符串,所述资源请求字符串包括利用所述私钥加密的资源字符串和所述验证串;

所述接收单元,还用于接收所述缓存服务器返回的资源,其中,所述资源为所述缓存服务器对所述验证串进行解码得到公钥,并根据所述公钥解密所述加密的资源字符串得到解密后的资源字符串,获取与所述解密后的资源字符串对应的资源。

本申请第三方面提供了一种缓存服务器,所述缓存服务器,包括:

接收单元,用于接收客户端发送的资源请求字符串,所述资源请求字符串包括利用私钥加密的资源字符串和验证串;

解密单元,用于对所述验证串进行解码,得到公钥和公钥有效期;

资源获取单元,用于根据所述公钥有效期判断用户登录信息是否过期,当所述用户登录信息未过期时,则根据所述公钥对所述加密的资源字符串进行解密,得到解密后的资源字符串;

发送单元,用于将与所述解密后的资源字符串对应的资源发送给客户端。

本申请实施例公开了一种资源获取方法,应用于客户端,在该方法中,接收登录服务器发送的验证串和密钥;对所述密钥进行解密,得到私钥;向缓存服务器发送资源请求字符串,所述资源请求字符串包括利用所述私钥加密的资源字符串和所述验证串;接收所述缓存服务器返回的资源,其中,所述资源为所述缓存服务器对所述验证串进行解码得到公钥,并根据所述公钥解密所述加密的资源字符串得到解密后的资源字符串,获取与所述解密后的资源字符串对应的资源。利用本申请实施例提供的方案,对使用客户端的用户鉴权成功后,无需第三方鉴权服务即可持续在缓存服务器之间提供持续的对用户端合法性的验证,且避免因为抓包截获请求来大量制造盗链连接情况。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例提供的一种资源获取系统结构示意图;

图2为本申请实施例提供的一种资源获取方法的流程示意图;

图3为本申请实施例提供的另一种资源获取方法的流程示意图;

图4为本申请实施例提供的一种客户端的结构示意图;

图5为本申请实施例提供的一种缓存服务器的结构示意图。

具体实施方式

本申请实施例提供了一种资源获取方法及装置,可以避免因为抓包截获请求而被盗链的情况。

为了便于理解本发申请实施例提供的一种资源获取方法的技术方案,本申请的具体实施方式通过结合图1的资源获取系统进行说明。该资源获取系统可以至少包括客户端、登录服务器和缓存服务器。登录服务器与客户端之间存在一组约定的加/解密方法和秘钥组US,登录服务器与缓存服务器之间存在另一组约定的加/解密方法和秘钥组SS,客户端与缓存服务器的验证需要各自的密码组解码出来的私钥skey和公钥pkey进行加/解密。

参见图2,该图为本申请实施例提供的一种资源获取方法的流程示意图,该方法应用于客户端,例如可以通过如下S201-S204实现。

S201:接收登录服务器发送的验证串和密钥。

具体的,客户端连接登录服务器,以使得登录服务器对使用客户端的用户进行鉴权,当鉴权通过后,则向客户端返回验证串和密钥,其中,密钥为加密后的私钥。该密钥是由客户端与登录服务端约定的加密方式和密码进行加密的,外部截取无法直接使用。验证串包含的内容是经过加密的,且加密方式与密钥不同,外部截取或者客户端都无法对该验证串进行解密。

S202:对密钥进行解密,得到私钥。

具体的,根据与登录服务器采用的加密方法对应的解密方法对密钥进行解密,得到私钥。

S203:向缓存服务器发送资源请求字符串。

在本申请实施例中,资源请求字符串包括利用私钥加密的资源字符串和验证串。

在本申请实施例的一种实现方式中,资源请求字符串还包括:时间戳。

具体示例如下:

客户端需要向缓存服务器请求资源时对请求资源的统一资源定位符(UniformResource Locator,URL)(即资源请求字符串)附加上请求时间戳,并对资源字符串使用私钥skey进行加密,并添加上验证串sign,获得的新的请求串发给缓存服务器。原始请求如下:

http://pcvideoaliyun.titan.mgtv.com/c1/2022/07/06_0/F4A8830FD5182338B3E865608D5C408E_20220706_1_1_391.m3u8?v=xvy&u=sxt&ci=xxx;

在原始请求中加上时间戳t=1657265397,得到如下URL:

http://pcvideoaliyun.titan.mgtv.com/c1/2022/07/06_0/F4A8830FD5182338B3E865608D5C408E_20220706_1_1_391.m3u8?v=xvy&u=sxt&ci=xxx&t=1657265397;

再使用私钥skey加密请求参数,将加密的请求参数放到pm参数中,并将sign验证串附加在后面得到如下URL:

http://pcvideoaliyun.titan.mgtv.com/c1/2022/07/06_0/F4A8830FD5182338B3E865608D5C408E_20220706_1_1_391.m3u8?pm=2GtN0e8rUC7PYTzkjU_z~MknYQoHtXKzmkWUvswbIuFhbrA7kUdiu9mhE0ypchXCylaeRJ_M6XCvgBMA1mouQz31jqWodLlLSbd8m5JUNkcmiECdA0O~cvWaospX_giIaE8CzYgr0Ao608p61pn40KLUbNj6MzkRbqT6eW5WK6t3r_rOGlD~6yEPG_OYKiDQYgMk10Llv4j&sign=dlLtdjgiu4eiqPZN8sy7bMblJgApUwkmHuaPOAHdA。

其中,pm参数用来封装隐藏原请求的参数,即原来所有的请求参数直接加密后的串放到pm中将最后得到的URL发送给缓存服务器请求资源。其中,URL未加密部分以及验证串为URL中的明文,用于确保请求没有被篡改,防止盗链者将pm参数部分嫁接到其他的请求中。

S204:接收缓存服务器返回的资源。

具体的,缓存服务器对验证串进行解码得到公钥,并根据公钥解密加密的资源字符串得到解密后的资源字符串,获取与解密后的资源字符串对应的资源,并将得到的资源返回给客户端。

在本申请实施例的一种实现方式中,当接收的资源为索引文件后,从索引文件中提取分片字符串;根据分片字符串向缓存服务器发送分片请求字符串,分片请求字符串包括利用私钥加密的分片字符串、验证串和时间戳;接收缓存服务器返回的分片文件,其中分片文件为缓存服务器对验证串进行解码得到公钥,并根据公钥解密加密的分片字符串,得到与解密后的分片字符串对应的分片文件。

具体的,索引文件m3u8是一个文件列表,里面包含许多ts分片文件,上述步骤已经将索引文件m3u8下载到本地,从索引文件m3u8中提取指定分片字符串,加上时间戳后使用私钥加密并添加验证串后得到分片请求字符串,并向缓存服务器发送该分片请求字符串。

在本申请实施例的一种实现方式中,客户端与缓存服务器之间的密钥队具有时限,当达到时限时,用户需要通过客户端,连接登录服务器进行续签,即重新进行鉴权。

本申请实施例中,对使用客户端的用户鉴权成功后,无需第三方鉴权服务即可持续在缓存服务器之间提供持续的对用户端合法性的验证,客户端与登录服务器之间,客户端与缓存服务器之间,登录器与缓存服务器之间分别设置一组加/解密方式和秘钥,每组秘钥之间互不相同,从而避免因为抓包截获请求来大量制造盗链连接的情况。

如图3所示,本申请实施例提供了另一种资源获取方法,该方法应用于缓存服务端,例如可以通过如下S301-304实现

S301:接收客户端发送的资源请求字符串。

具体的,资源请求字符串包括利用私钥加密的资源字符串和验证串。

S302:对验证串进行解码。

具体的,根据与登录服务器采用的加密方法对应的解密方法对验证串进行解密,得到公钥pkey,解密算法以及公钥有效期,请求有效期等其他验证信息。

S303:根据公钥对加密的资源字符串进行解密。

具体的,根据公钥有效期判断用户登录信息是否过期,当用户登录信息未过期时,则根据公钥和解密算法对加密的资源字符串进行解密,得到解密后的资源字符串。

在本申请实施例的一种实现方式中,若解密失败,则直接拒绝返回资源;若解密成功则判断请求中时间戳与服务端时间戳差值,若该差值高于请求有效期,则拒绝返回资源并提示超时。若该差值没有高于请求有效期,则执行S304。

S304:将与解密后的资源字符串对应的资源发送给客户端。

在本申请实施例的一种实现方式中,将与解密后的资源字符串对应的资源发送给客户端,当该资源为索引文件时,还将接收客户端发送的分片请求字符串,分片请求字符串包括利用私钥加密的分片字符串和验证串;对验证串进行解码,得到公钥和公钥有效期;根据公钥有效期判断用户登录信息是否过期,当用户登录信息未过期时,则根据公钥对加密的分片字符串进行解密,得到解密后的分片字符串;若解密失败,则直接拒绝返回分片文件;若解密成功则判断请求中时间戳与服务端时间戳差值,若该差值高于请求有效期,则拒绝返回分片文件并提示超时。若该差值没有高于请求有效期,则执行将与解密后的分片字符串对应的分片文件发送给客户端。

可以理解的是,上述步骤S301实现方式,与前述图2的实施例中步骤S201相类似,此处不再赘述。

本申请实施例中,客户端与登录服务器之间,客户端与缓存服务器之间,登录器与缓存服务器之间分别设置一组加/解密方式和秘钥,每组秘钥之间互不相同,从而避免因为抓包截获请求来大量制造盗链连接情况现结合。

基于以上实施例提供的方法,本申请实施例还提供了一种客户端,以下结合附图4介绍该客户端。

本申请实施例提供的客户端,包括:接收单元401、解密单元402和发送单元403。

接收单元401,用于接收登录服务器发送的验证串和密钥;

解密单元402,用于对密钥进行解密,得到私钥;

发送单元403,用于向缓存服务器发送资源请求字符串,资源请求字符串包括利用私钥加密的资源字符串和验证串;

接收单元401,还用于接收缓存服务器返回的资源,其中,资源为缓存服务器对验证串进行解码得到公钥,并根据公钥解密加密的资源字符串得到解密后的资源字符串,获取与解密后的资源字符串对应的资源。

在一种可能的实现方式中,所述接收单元401,具体用于:

连接登录服务器,以使得登录服务器对使用客户端的用户鉴权,当鉴权通过后,则向客户端返回验证串和密钥。

在一种可能的实现方式中,所述解密单元402,具体用于:

根据与登录服务器采用的加密方法对应的解密方法对密钥进行解密,得到私钥。

在一种可能的实现方式中,所述客户端,还包括:

提取单元,用于当接收索引文件后,从索引文件中提取分片字符串;

发送单元403,还用于根据分片字符串向缓存服务器发送分片请求字符串,分片请求字符串包括利用私钥加密的分片字符串和验证串;

接收单元401,还用于接收缓存服务器返回的分片文件,其中分片文件为缓存服务器对验证串进行解码得到公钥,并根据公钥解密加密的分片字符串,得到与解密后的分片字符串对应的分片文件。

由于客户端是与以上方法实施例提供的一种资源获取方法对应的装置,客户端的各个单元的具体实现,均与以上方法实施例为同一构思,因此,关于客户端的各个单元的具体实现,可以参考以上方法实施例关于一种资源获取方法的描述部分,此处不再赘述。

基于以上实施例提供的方法,本申请实施例还提供了一种缓存服务器,以下结合附图5介绍该缓存服务器。

本申请实施例提供的缓存服务器,包括:接收单元501、解密单元502、资源获取单元503和发送单元504。

接收单元501,用于接收客户端发送的资源请求字符串,资源请求字符串包括利用私钥加密的资源字符串和验证串;

解密单元502,用于对验证串进行解码,得到公钥和公钥有效期;

资源获取单元503,用于根据公钥有效期判断用户登录信息是否过期,当用户登录信息未过期时,则根据公钥对加密的资源字符串进行解密,得到解密后的资源字符串;

发送单元504,用于将与解密后的资源字符串对应的资源发送给客户端。

在一种可能的实现方式中,所述缓存服务器,还包括:

判断单元,用于若解密成功,则判断资源请求字符串中的时间戳与缓存服务器中的时间戳的差值,若差值大于预设的请求有效期,则拒绝返回资源;若解密失败,则拒绝返回资源。

在一种可能的实现方式中,

所述接收接收单元501,还用于接收客户端发送的分片请求字符串,分片请求字符串包括利用私钥加密的分片字符串和验证串;

解密单元502,还用于对验证串进行解码,得到公钥和公钥有效期;

资源获取单元503,还用于根据公钥有效期判断用户登录信息是否过期,当用户登录信息未过期时,则根据公钥对加密的分片字符串进行解密,得到解密后的分片字符串;

发送单元504,还用于将与解密后的分片字符串对应的分片文件发送给客户端。

由于缓存服务器是与以上方法实施例提供的另一种资源获取方法对应的装置,缓存服务器的各个单元的具体实现,均与以上方法实施例为同一构思,因此,关于缓存服务器的各个单元的具体实现,可以参考以上方法实施例关于另一种资源获取方法的描述部分,此处不再赘述。

本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑业务划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各业务单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件业务单元的形式实现。

集成的单元如果以软件业务单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的业务可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些业务存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。

以上的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上仅为本发明的具体实施方式而已。

以上,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

技术分类

06120115617018