防盗链方法、客户端和服务器系统与流程

文档序号:13887230阅读:334来源:国知局

本申请涉及流媒体技术领域,特别地,涉及一种防盗链方法、客户端和服务器系统。



背景技术:

随着互联网技术以及多媒体技术的快速发展,授权用户可以通过客户端(如手机、笔记本等终端)访问、由多媒体服务提供商通过媒体服务器提供的流媒体文件,如视频文件,但是,在实际应用中,一些不法商家可以通过相关技术(如抓包技术)盗取多媒体服务提供商提供的流媒体文件的统一资源定位符(url,uniformresourcelocator),并通过盗取到的url使其它用户(多媒体服务提供商未授权的用户)访问多媒体服务提供商提供的流媒体文件以非法获取利益,这使得多媒体服务提供商的正当利益受到损害,因此,对于多媒体服务提供商来说,流媒体文件的防盗链显得尤为重要。

动态流媒体传输协议(hls,httplivestreaming)是苹果公司提出的一种媒体播放协议,其工作原理是把整个数据流分成一个个小的基于超文本传输协议(http,hypertexttransferprotocol)的分片传输流(ts,transportstream)文件来下载,在开始一个流媒体会话时,客户端会下载一个包含元数据的索引文件(m3u8,extendedm3u),然后从索引文件的列表中解析出每个ts文件的url,然后下载分片文件播放。

现有技术中,一般通过ip地址对用户进行合法性认证,即当用户通过url请求流媒体文件的索引文件时,媒体服务器比较用户的ip地址与认证服务器生成的加密信息中的ip地址是否一致,若一致,则表明该url没有被盗用(即该用户为授权用户),否则,表明该url被盗用(即该用户为非授权用户)。

但上述方法无法防止不法商家伪造与授权用户相同的ip地址以骗取媒体服务器的ip认证的问题,且在授权用户的ip地址发生变化时(非固定ip用户)无法使授权用户访问媒体服务器中的流媒体文件。



技术实现要素:

本申请提供一种防盗链方法、客户端和服务器系统,用于解决现有认证技术无法防止伪造ip骗取服务器认证的问题以及因客户端ip地址变化导致的校验不准确问题。

本申请公开的一种防盗链方法,在服务器端,所述方法包括:接收客户端发送的媒体播放请求;所述媒体播放请求包括待播放媒体信息和客户端硬件信息;生成相应的索引文件url并返回至客户端;所述索引文件url包括媒体唯一标识、时间戳和加密串,所述媒体唯一标识根据所述媒体播放信息获得,生成所述加密串的加密计算参数包括媒体唯一标识、客户端硬件信息和时间戳;接收客户端根据索引文件url发送的索引文件获取请求,根据加密串校验所述索引文件获取请求是否合法;若是,则生成包括有待播放媒体所有分片url的索引文件并返回至客户端;其中,所述索引文件获取请求包括索引文件url和客户端硬件信息;所述分片url包括分片标识信息、时间戳和防盗链信息,生成所述防盗链信息的加密计算参数包括分片标识信息、客户端硬件信息和时间戳;接收客户端基于分片url发送的分片播放请求;根据防盗链信息判断分片url是否合法且在有效期内,若是,则将对应的分片文件返回至客户端。

优选的,将对应的分片文件返回至客户端步骤之前,还包括:在服务器本地缓存对应的分片播放请求信息;其中,当分片播放请求信息超出预设的缓存有效期时,自动从缓存中删除;所述方法还包括:若分片url合法且超出有效期,进一步判断本地缓存中是否保存有与当前分片url属于同一客户端发出且属于同一媒体的分片播放请求信息,若是,则向客户端返回对应的分片文件。

优选的,判断同一客户端的当前分片url与本地缓存中保存的分片播放请求信息是否属于同一媒体的方法具体为:判断同一客户端的当前分片url的时间戳与本地缓存中保存的分片播放请求信息中的时间戳是否相同,若是,则认定二者属于同一媒体。

优选的,所述分片文件url还包括密钥标识符和用户信息;生成所述防盗链信息的加密计算参数还包括用户信息;所述加密计算采用根据所述密钥标识符从网络共享数据库获取的加密密钥。

优选的,根据防盗链信息判断分片url是在有效期内方法具体为:判断分片url中的时间戳加上预设的url有效时长是否小于服务器的当前时间;若是,认定所述分片url已经超出有效期;否则认定所述分片url在有效期内。

优选的,所述媒体播放请求还包括用户信息;在所述生成相应索引文件url并返回至客户端的步骤之前还包括:根据用户信息判断是否为授权用户发出的媒体播放请求,若否,返回该用户为非授权用户的提示信息,结束流程。

本申请公开的一种防盗链方法,在客户端侧,所述方法包括:响应于用户的媒体播放操作,发送媒体播放请求至认证服务器;接收所述认证服务器根据所述媒体播放请求生成的索引文件url;其中,所述媒体播放请求包括待播放媒体信息和客户端硬件信息;所述索引文件url包括媒体唯一标识、时间戳和加密串,所述媒体唯一标识根据所述媒体播放信息获得,生成所述加密串的加密计算参数包括待媒体唯一标识、客户端硬件信息和时间戳;基于所述索引文件url向流媒体服务器发送索引文件获取请求,接收所述流媒体服务器根据合法的索引文件url生成的包括待播放媒体所有分片url的索引文件;其中,所述索引文件获取请求包括索引文件url和客户端硬件信息;所述分片url包括分片标识信息、时间戳和防盗链信息,生成所述防盗链信息的加密计算参数包括分片标识信息、客户端硬件信息和时间戳;基于分片url向所述流媒体服务器发送分片播放请求,接收并播放所述流媒体服务器根据合法有效的分片播放请求返回的对应分片文件;其中,所述流媒体服务器根据分片url中的防盗链信息判断分片url是否合法以及是否在有效期内,当分片url合法且没有超过有效期时,认定所述分片播放请求合法有效。

本申请公开的一种防盗链服务器系统,包括通过网络连接的认证服务器和流媒体服务器,其中:所述认证服务器用于接收客户端发送的媒体播放请求,生成相应的索引文件url并返回至客户端;所述媒体播放请求包括待播放媒体信息和客户端硬件信息;所述索引文件url包括媒体唯一标识、时间戳和加密串,所述媒体唯一标识根据所述媒体播放信息获得,生成所述加密串的加密计算参数包括媒体唯一标识、客户端硬件信息和时间戳;所述流媒体服务器包括用户请求验证模块、索引文件生成模块和分片文件服务模块;所述用户请求验证模块,用于接收客户端根据索引文件url发送的索引文件获取请求,根据所述加密串校验所述索引文件获取请求是否合法;所述索引文件获取请求包括索引文件url和客户端硬件信息;所述索引文件生成模块,用于当索引文件url合法时,生成包括有待播放媒体所有分片url的索引文件并返回至客户端;所述分片url包括分片标识信息、时间戳和防盗链信息,生成所述防盗链信息的加密计算参数包括分片标识信息、客户端硬件信息和时间戳;所述分片文件服务模块,用于接收客户端基于分片url发送的分片播放请求,根据分片url中的防盗链信息判断分片url是否合法以及是否在有效期内,当分片url合法且在有效期内时,将对应的分片文件返回至客户端。

优选的,所述流媒体服务器还包括分片url缓存模块和超时请求处理模块;其中:所述分片url缓存模块,用于在将对应的分片文件返回至客户端时,在服务器本地缓存对应的分片播放请求信息;其中,当分片播放请求信息超出预设的缓存有效期时,自动从缓存中删除;所述超时请求处理模块,用于当分片url合法且超出有效期时,判断本地缓存中是否保存有与当前分片url属于同一客户端发出且属于同一媒体的分片播放请求信息,当本地缓存中保存有同一客户端发出且属于同一媒体的分片播放请求信息时,向客户端返回对应的分片文件。

优选的,所述服务器系统还包括通过网络与认证服务器和流媒体服务器连接的数据库;所述数据库保存有与密钥标识符一一对应的加密密钥;所述分片url还包括密钥标识符和用户信息,生成所述防盗链信息的加密计算参数还包括用户信息,所述加密计算采用根据所述密钥标识符从数据库中获取的加密密钥。

本申请公开的一种防盗链客户端,包括:播放请求发送模块,用于响应用户的媒体播放操作,发送媒体播放请求至认证服务器,接收所述认证服务器根据所述媒体播放请求生成的相应索引文件url;所述媒体播放请求包括待播放媒体信息和客户端硬件信息;所述索引文件url包括媒体唯一标识、时间戳和加密串,所述媒体唯一标识根据所述媒体播放信息获得,生成所述加密串的加密计算参数包括媒体唯一标识、客户端硬件信息和时间戳;索引文件获取模块,用于根据所述索引文件url向流媒体服务器发送索引文件获取请求,接收所述流媒体服务器根据合法的索引文件url生成的包括有待播放媒体所有分片url的索引文件;所述索引文件获取请求包括索引文件url和客户端硬件信息;所述分片url包括分片标识信息、时间戳和防盗链信息,生成所述防盗链信息的加密计算参数包括分片标识信息、客户端硬件信息和时间戳;分片请求播放模块,用于根据分片url向所述流媒体服务器发送分片播放请求,接收并播放所述流媒体服务器根据合法有效的分片播放请求返回的对应分片文件;其中,所述流媒体服务器根据分片url中的防盗链信息判断分片url是否合法以及是否在有效期内,当分片url合法且没有超过有效期时,认定所述分片播放请求合法有效。

与现有技术相比,本申请具有以下优点:

本申请优选实施例中,对于用户的媒体播放请求,首先进行客户端是否获得授权的验证,之后对每个分片播放请求还进行防盗链验证,所有验证都是基于系统自动读取的客户端硬件信息(如硬件id)的加密串进行的,不仅能够有效避免因为终端ip地址变化导致的防盗链校验不准确的问题;另外由于对索引文件中的每个分片url都进行了防盗链处理,也极大提高防盗链的可靠性。

附图说明

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

图1为本申请防盗链方法第一实施例的流程图;

图2为本申请防盗链方法第二实施例的流程图;

图3为本申请防盗链方法第三实施例的流程图;

图4为本申请防盗链服务器系统一实施例的结构示意图;

图5为本申请防盗链客户端一实施例的结构示意图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

参照图1,示出了本申请防盗链方法第一实施例的流程,所述方法的执行主体为服务器,具体实施时,服务器可以是由认证服务器21和1台或多台流媒体服务器22组成的防盗链服务器系统2(如图4所示),各服务器之间通过网络连接。本方法实施例具体包括以下步骤:

步骤s101:认证服务器接收用户通过客户端发送的媒体播放请求,根据所述媒体播放请求生成相应索引文件url并返回至客户端。

其中,所述媒体播放请求包括待播放媒体信息以及用于验证用户是否获得授权的用户信息(如用户id)和客户端硬件信息(如客户端id)。

认证服务器收到媒体播放请求时,首先根据用户id验证该用户是否为授权用户。对于授权用户,认证服务器将根据用户请求的待播放媒体信息(如影片名称、出品人、主要演员等信息)获得媒体唯一标识(简称媒体id),生成时间戳和加密串,将媒体id、用户id、时间戳和加密串等作为参数,生成索引文件url,并返回给客户端。

上述的加密串为对媒体id、用户id、客户端id和时间戳按一定的加密算法进行加密计算生成的字符串。

在进一步的优选实施例中,可以采用由认证服务器21指定加密密钥的方式实现用户认证。如可以在认证服务器21和流媒体服务器22均可访问的数据库23中保存有多套与密钥标识符(简称密钥id)一一对应的加密密钥,认证服务器采用指定的密钥id对应的加密密钥生成加密串,同时在索引文件url中增加参数密钥id;在后续的流程中,当流媒体服务器22收到请求时,可以从数据库23中获取相应的加密密钥对上述加密串进行验证。

步骤s102:流媒体服务器接收客户端根据索引文件url发送的索引文件获取请求。

其中,所述索引文件获取请求中包括有索引文件url(包括媒体id、用户id、时间戳和加密串等),以及客户端自动获取的客户端id。

步骤s103:根据加密串校验所述索引文件url是否合法;若是,转步骤s104;否则,向客户端反馈客户认证失败的信息,结束流程。

当采用上文所述的由认证服务器21指定加密密钥的方式实现用户认证时,对索引文件url的合法性进行校验的步骤具体可以包括:

步骤s103-1:从索引文件的url中获取媒体id、用户id、时间戳和密钥id;从所述索引文件获取请求中获取客户端id;

步骤s103-2:根据所述密钥id从数据库中获取加密密钥;

步骤s103-3:采用上述加密密钥,对媒体id、用户id、客户端id和时间戳进行加密计算;

认证服务器采用指定的密钥id对应的加密密钥生成加密串时,生成加密串的加密计算的参数还可以包括密钥id;则在步骤s103-3中,需要对媒体id、用户id、客户端id和时间戳,以及密钥id进行加密计算。

步骤s103-4:将上述计算生成的字符串与索引文件url中的加密串进行比较;若相同,表示所述索引文件url合法;否则,表示索引文件url为无效请求,向客户端反馈客户认证失败的信息。

在上述校验方法中,可以采用不可逆加密算法(如md5)执行加密运算。但本申请对此不予限制,还可以使用可逆的加密方式,相应的,可以对url参数进行全加密方式,校验过程中,只需要将解密后获得的客户端id与请求参数中的客户端id进行比较即可。

步骤s104:生成包括有待播放媒体所有分片url的索引文件并返回至客户端。

其中,每个分片url的参数包括有分片标识信息(简称分片id)、时间戳和防盗链信息,所述防盗链信息为对分片id、客户端id和时间戳进行加密计算生成的字符串。

为进一步提高可靠性,分片url的参数还包括用户id,上述生成防盗链信息的加密计算的参数还包括用户id。

在进一步的优选实施例中,对于防盗链信息的生成过程,可以采用指定密钥id的方式进行,具体包括:

步骤s104-1:从索引文件url中获取时间戳和密钥id;从所述索引文件获取请求中获取客户端id;

步骤s104-2:根据密钥id从数据库中获取加密密钥;

步骤s104-3:对每个分片url,采用上述加密密钥,对分片id、客户端id和时间戳进行加密计算,将生成的字符串作为该分片url的防盗链信息。

在步骤s104-3中,生成防盗链信息的加密计算参数还可以包括密钥id。

步骤s105:流媒体服务器接收客户端基于分片url发送的分片播放请求。

上述分片播放请求中,包括有分片url和客户端自动获取的客户端id。

步骤s106:根据分片url中的防盗链信息判断分片url是否合法以及是否在有效期内,若是,转步骤s107;否则,向客户端反馈防盗链认证失败的信息,结束流程。

在具体实施时,关于分片url是否合法以及是否在有效期内的判断方法,具体可以为:

步骤s106-1:判断分片url中的时间戳加上流媒体服务器预设的url有效时长得到的时间,是否小于流媒体服务器的当前时间,若是,则该分片url过期,返回该分片url过期的提示信息;否则,表示该分片url在有效期内,可以进行后续的分片url合法性判断过程。

关于分片url合法性的判断,需要采用与上述防盗链信息的生成过程相对应的方式,具体可以包括:

步骤s106-2:从分片url中获取密钥id,根据该密钥id从数据库中获取对应的加密密钥;

步骤s106-3:从分片url中获取分片id和时间戳,从分片播放请求中获取客户端id,利用所述加密密钥对上述分片id、客户端id和时间戳进行计算;

若在步骤s104-3中,生成防盗链信息的加密计算参数包括密钥id,则相应地,在步骤s106-3中,需要利用所述加密密钥对上述分片id、客户端id和时间戳,以及密钥id进行计算。

步骤s106-4:将上述计算生成的字符串与分片url的防盗链信息进行比较,若相同,则表示所述分片url合法有效。

步骤s107:将对应的分片文件返回至客户端。

本优选实施例通过上述手段,不仅能够有效避免因为终端ip地址变化导致的防盗链校验不准确的问题,还能够有效防止不法商家伪造终端的行为;而且,本优选实施例加密计算参数包括客户端id和时间戳,则可以实现追踪特定用户在特定时间的行为,并通过大数据等手段进行分析,以便更好地为用户提供服务,提高用户体验;另外由于对索引文件中的每个分片url都进行了防盗链处理,也极大提高防盗链的可靠性。

参照图2,示出了本申请防盗链方法第二实施例的流程,与上述第一方法实施例的主要区别在于,在流媒体服务器22上设置有缓存机制。防盗链有效期是综合考虑用户正常播放完整影片所需时间而设定的,正常情况下,用户可以在有效期内播放完整个影片,但是如果用户长时间暂停,然后继续播放,在播放过程中,后续的分片url有可能随着时间推迟而超出有效期。例如,影片总时长为1小时,授权用户在刚开始播放时暂停,如果设定的url有效期为2小时,用户暂停1.5小时后继续播放,则只能正常播放0.5小时,后续的分片就会因为超出有效期而下载失败导致无法播放。针对上述情况,本优选实施例在流媒体服务器增加了缓存机制,即缓存用户上次的合法分片请求,如果在预设的缓存期限范围内,用户又有新的请求,并且该新请求与上次合法分片请求属于同一用户以及同一个影片,则判断为合法分片请求,而不管该分片请求是否已经超出有效期。本优选方法实施例具体包括:

步骤s201:认证服务器接收用户通过客户端发送的媒体播放请求,根据所述媒体播放请求生成相应索引文件url并返回至客户端。

其中,所述媒体播放请求包括待播放媒体信息以及客户端硬件信息。

所述索引文件url包括根据所述待播放媒体信息获得的媒体唯一标识,以及服务器生成的时间戳和加密串;所述加密串为对媒体唯一标识、客户端硬件信息和时间戳进行加密计算生成的字符串。

步骤s202:流媒体服务器接收客户端根据索引文件url发送的索引文件获取请求。

其中,所述索引文件获取请求中包括有索引文件url以及客户端自动获取的客户端硬件信息。

步骤s203:根据加密串校验所述索引文件url是否合法;若是,转步骤s204;否则,向客户端反馈客户认证失败的信息,结束流程。

步骤s204:生成包括有待播放媒体所有分片url的索引文件并返回至客户端。

其中,每个分片url的参数包括有分片标识信息、时间戳和防盗链信息,所述防盗链信息为对分片标识信息、客户端硬件信息和时间戳进行加密计算生成的字符串。

步骤s205:流媒体服务器接收客户端根据分片url发送的分片播放请求。

其中,分片播放请求中包括有分片url和客户端自动获取的客户端硬件信息。

步骤s206:判断分片url是否在有效期内,若是,转步骤s208;否则,转步骤s207。

步骤s207:判断本地缓存中是否保存有与当前分片url属于同一客户端发出且属于同一媒体的分片播放请求信息;若是,转步骤s208;否则,向客户端反馈分片url超过有效期的信息,结束流程。

关于本地缓存是否保存有与当前分片url属于同一客户端发出、且属于同一媒体的分片播放请求信息(可以与当前分片相同,也可以是同一媒体的其他分片)的判断方法,在具体实施时,可以根据分片播放请求中的客户端硬件信息和分片url中的时间戳确定(在为用户生成索引文件时,一个影片中的不同分片有相同的时间戳,并且一个客户端播放不同影片的时间戳肯定不同)。

关于分片url是否在预设缓存期限的判断,在具体实施时,可以通过预先设置缓存时间的方式控制:对于缓存在数据库中的分片请求信息,如果超过了缓存时间,则自动从数据库中删除。

关于预设缓存时间,可以根据影片的长度、一般用户的观影习惯等参数设定。如对于时长为2小时的影片,考虑到用户观影过程中可能会中间休息、被其他事情打断等因素,可以将影片的有效期设置为3小时,相应的,将缓存时间设置为5小时。

步骤s208:判断分片url是否合法,若是,转步骤s209;否则,向客户端反馈分片url认证失败的信息,结束流程。

步骤s209:将对应的分片文件返回至客户端,并将该分片播放请求信息缓存到本地流媒体服务器中。

本优选实施例通过上述技术手段,可有效解决用户在观影过程中因意外事件中断导致超出有效期、无法一次性观看完整影片的问题,进一步提高用户观影体验。

参照图3,示出了本申请防盗链方法第三实施例的流程,所述方法的执行主体为客户端,本方法实施例具体包括:

步骤s301:响应于用户的媒体播放操作,发送媒体播放请求至认证服务器,接收所述认证服务器根据所述媒体播放请求生成的索引文件url。

其中,所述媒体播放请求包括待播放媒体信息和客户端硬件信息;

所述索引文件url包括根据待播放媒体信息获得的媒体唯一标识,以及认证服务器生成的时间戳和加密串;

所述加密串为对待播放媒体信息、客户端硬件信息和时间戳进行加密计算生成的字符串。

步骤s302:基于所述索引文件url向流媒体服务器发送索引文件获取请求,接收所述流媒体服务器根据合法的索引文件url生成的包括有待播放媒体所有分片url的索引文件。

其中,所述索引文件获取请求中包括有索引文件url以及客户端自动获取的客户端硬件标识符;

每个分片url包括有分片标识信息、时间戳和防盗链信息,所述防盗链信息为对分片标识信息、客户端硬件信息和时间戳进行加密计算生成的字符串;

所述流媒体服务器根据加密串参数对所述索引文件url的合法性进行校验。

步骤s303:基于分片url向所述流媒体服务器发送分片播放请求,接收并播放所述流媒体服务器根据合法有效的分片播放请求返回的对应分片文件。

其中,所述流媒体服务器根据防盗链信息判断分片url是否合法以及是否在有效期内,当分片url合法且没有超过有效期时,认定所述分片播放请求合法有效。

重复步骤s303,直至完成整个媒体文件的播放。

在进一步的优选实施例中,还可以在流媒体服务器中设置缓存机制(此时,分片url还需要包括用户信息参数),当分片url超出有效期时,如果缓存中保存有该客户端对同一个影片的分片播放请求信息,则认定该分片url有效,将当前分片url对应的分片文件返回至客户端。

对于前述的各方法实施例,为了描述简单,故将其都表述为一系列的动作组合,但是本领域的技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为根据本申请,某些步骤可以采用其他顺序或同时执行;其次,本领域技术人员也应该知悉,上述方法实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。

参照图4,示出了本申请防盗链服务器系统一实施例的结构框图,包括通过网络连接的认证服务器21和1台或多台流媒体服务器22,其中:

认证服务器21,用于接收用户通过防盗链客户端1发送的媒体播放请求,根据所述媒体播放请求生成相应索引文件url并返回至防盗链客户端1;

其中,上述媒体播放请求包括待播放媒体信息以及用于验证用户是否获得授权的用户信息和客户端硬件信息。

认证服务器21收到媒体播放请求时,根据用户信息验证该用户是否为授权用户。对于授权用户,认证服务器21将根据用户请求的待播放媒体信息获取媒体唯一标识,生成时间戳和加密串,将媒体唯一标识、时间戳和加密串等作为参数,生成索引文件url,并返回给客户端。

上述的加密串为对媒体唯一标识、客户端硬件信息和时间戳按一定的加密算法进行加密计算生成的字符串。

在进一步的实施例中,可以采用由认证服务器21指定加密密钥的方式实现用户认证。如可以在认证服务器21和流媒体服务器22均可访问的数据库23中保存有多套与密钥id一一对应的加密密钥。认证服务器21采用指定的密钥id对应的加密密钥生成加密串,同时在索引文件url中增加密钥id参数;相应的,当流媒体服务器22收到请求时,可以从数据库23中获取相应的加密密钥对上述加密串进行验证。

需要说明的是,在具体实施时,数据库23可以为通过网络与其他服务器连接的独立数据库服务器,也可以由认证服务器或其中一台流媒体服务器兼任。

流媒体服务器22具体包括用户请求验证模块221、索引文件生成模块222和分片文件服务模块223。

用户请求验证模块221,用于接收防盗链客户端1根据索引文件url发送的索引文件获取请求,并根据加密串校验所述索引文件url是否合法。

其中,上述索引文件获取请求中包括有索引文件url以及客户端自动获取的客户端硬件信息。

与认证服务器21生成加密串的方式相对应,用户请求验证模块221采用同一密钥id对相关参数进行加密计算的方式来验证用户的合法性。具体可以包括如下子模块:

第一参数获取子模块,用于从索引文件的url中获取媒体唯一标识、时间戳和密钥id;从所述索引文件获取请求中获取客户端硬件信息。

第一加密方式获取子模块,用于根据所述密钥id从数据库中获取加密密钥。

第一加密执行子模块,用于采用上述加密密钥,对媒体唯一标识、客户端硬件信息和时间戳进行加密计算。

用户合法性判断子模块,用于将上述计算生成的字符串与索引文件url中的加密串进行比较;当二者相同时,表示所述索引文件url合法;否则,表示索引文件url为无效请求,向客户端反馈客户认证失败的信息。

索引文件生成模块222,用于当索引文件url合法时,生成包括有待播放媒体所有分片url的索引文件并返回至客户端。

其中,每个分片url的参数包括有分片标识信息、时间戳和防盗链信息,所述防盗链信息为对分片标识信息、客户端硬件信息和时间戳进行加密计算生成的字符串。

在具体实施时,可以采用指定加密密钥的方式生成防盗链信息。相应的,分片url参数中还包括密钥id;索引文件生成模块222具体可以包括:

第二参数获取子模块,用于从索引文件url中获取时间戳和密钥id;从所述索引文件获取请求中获取客户端硬件信息。

第二加密方式获取子模块,用于根据密钥id从数据库中获取相应的加密密钥。

第二加密执行子模块,用于对每个分片url,采用上述加密密钥,对分片标识信息、客户端硬件信息和时间戳进行加密计算,将生成的字符串作为该分片url的防盗链信息。

分片文件服务模块223,用于接收客户端根据分片url发送的分片播放请求,根据分片url中的防盗链信息判断分片url是否合法以及是否在有效期内,当分片url合法且在有效期内时,将对应的分片文件返回至客户端。

与上述索引文件生成模块222的防盗链信息生成方式相对应,分片文件服务模块223具体可以包括:

有效期判断子模块,用于判断分片url中的时间戳加上流媒体服务器22预设的url有效时长得到的时间,是否小于流媒体服务器22的当前时间,若是,表示该分片url已经过期,返回该分片url过期的提示信息;否则,表示该分片url在有效期内,调度分片url合法性判断子模块进行分片url合法性判断。

第三加密方式获取子模块,用于从分片url中获取密钥id,根据该密钥id从数据库中获取对应的加密密钥。

第三加密执行子模块,用于从分片url中获取分片标识信息和时间戳,从分片播放请求中获取客户端硬件信息,利用第三加密方式获取子模块获取的加密密钥对上述参数进行计算。

分片url合法性判断子模块,用于将第三加密执行子模块计算生成的字符串与分片url的防盗链信息进行比较,若相同,则表示所述分片url合法有效。

在进一步的优选实施例中,流媒体服务器22还设置有缓存机制,具体的,流媒体服务器22还包括分片url缓存模块和超时请求处理模块;其中:

分片url缓存模块,用于当流媒体服务器22向客户端返回分片文件时,在本地缓存对应的分片url信息;同时,预先设置有缓存期限,当本地缓存的分片url信息超出缓存期限时,自动从缓存中删除。

超时请求处理模块,用于流媒体服务器22收到的分片播放请求中的分片url超出有效期内时,进一步判断本地缓存中是否保存有与当前分片url属于同一客户端发出且属于同一媒体的分片url信息;当本地缓存中保存有该客户端请求的同一媒体的分片url信息时,向客户端返回对应的分片文件。

参照图5,示出了本申请防盗链客户端一实施例的结构框图,包括:

播放请求发送模块11,用于响应用户的媒体播放操作,发送媒体播放请求至认证服务器,接收所述认证服务器根据所述媒体播放请求生成相应索引文件url;其中,所述媒体播放请求包括待播放媒体信息和客户端硬件信息;所述索引文件url包括根据待播放媒体信息获取的媒体唯一标识,以及认证服务器生成的时间戳和加密串;所述加密串为对媒体唯一标识、客户端硬件信息和时间戳进行加密计算生成的字符串;

索引文件获取模块12,用于根据所述索引文件url向流媒体服务器发送索引文件获取请求,接收所述流媒体服务器根据合法的索引文件url生成的包括有待播放媒体所有分片url的索引文件;其中,所述索引文件获取请求中包括有索引文件url以及客户端自动获取的客户端硬件信息;每个分片url的参数包括有分片标识信息、时间戳和防盗链信息,所述防盗链信息为对分片标识信息、客户端硬件信息和时间戳进行加密计算生成的字符串;所述流媒体服务器根据加密串对所述索引文件url的合法性进行校验;

分片请求播放模块13,用于根据分片url向所述流媒体服务器发送分片播放请求,接收并播放所述流媒体服务器根据合法有效的分片播放请求返回的对应分片文件;其中,所述流媒体服务器根据防盗链信息判断分片url是否合法以及是否在有效期内,当分片url合法且没有超过有效期时,认定所述分片播放请求合法有效。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

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

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1