一种视频直播HLS防盗链方法及系统与流程

文档序号:12479226阅读:978来源:国知局
一种视频直播HLS防盗链方法及系统与流程

本发明涉及互联网视频直播技术领域,特别是涉及视频直播HLS盗链技术领域,具体为一种视频直播HLS防盗链方法及系统。



背景技术:

盗链是指服务提供商自己不提供服务的内容,通过技术手段绕过其它有利益的最终用户界面(如广告),直接在自己的网站上向最终用户提供其它服务提供商的服务内容,骗取最终用户的浏览和点击率。受益者不提供资源或提供很少的资源,而真正的服务提供商却得不到任何的收益。针对视频直播业务,由于未授权的情况下,就可以被他人直接观看,从而影响业务的直接利益,所以启用防盗链技术。

现有的防盗链技术,基于Referer(HTTP的请求头)进行防盗,即通过Referer服务器可以检测资源访问的引用网页,一旦检测到非法引用网页即阻止或返回指定的网页。HTTP Referer是header的一部分,当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器我是从哪个页面链接过来的,服务器藉此可以获得一些信息用于处理。比如从我主页上链接到一个朋友那里,他的服务器就能够从HTTP Referer中统计出每天有多少用户点击我主页上的链接访问他的网站。

这种防盗链方式存在如下问题:可以人为地加上引用页的方法盗用直播业务进行播放。



技术实现要素:

鉴于以上所述现有技术的缺点,本发明的目的在于提供一种视频直播HLS防盗链方法及系统,用于解决现有技术中防盗链安全性不高,容易被破解的问题。

为实现上述目的及其他相关目的,本发明提供一种视频直播HLS防盗链方法,所述视频直播HLS防盗链方法包括:在接收到HTTP请求时,根据直播业务的URL,时间戳,请求用户UID以及CDN网络服务商提供的约定值生成验证值,并根据所述直播业务的URL,所述时间戳,所述请求用户UID以及所述验证值重新拼装HTTP请求;在接收到所述重新拼装HTTP请求时,验证所述重新拼装HTTP请求中的验证值,若验证失败则拒绝直播请求,若验证通过则根据所述直播请求的格式直接下发直播列表或检测与所述请求用户UID关联的唯一关联值是否存在和是否过期,若存在且未过期则下发视频直播流,若不存在或存在且过期则对所述请求用户UID重新认证并存储所述唯一关联值后下发视频直播流。

于本发明的一实施例中,所述检测与所述请求用户UID关联的唯一关联值是否存在和是否过期,若存在且未过期则下发视频直播流,若不存在或存在且过期则对所述请求用户UID重新认证并存储所述唯一关联值后下发视频直播流具体包括:依据所述请求用户UID生成所述唯一关联值,检测本地是否预先存储有所述唯一关联值,若否,则请求对所述请求用户UID进行重新认证和对所述唯一关联值进行重新存储,若是,则继续检测所述唯一关联值是否过期,若是,则请求对所述请求用户UID进行重新认证和对所述唯一关联值进行重新存储,若否,则下发视频直播流。

于本发明的一实施例中,对所述请求用户UID重新认证具体包括:检测所述请求用户UID的封存状态,有效期以及所述请求用户UID于不同IP的访问次数,若所述请求用户UID被封存或所述请求用户UID超过有效期或所述请求用户UID于不同IP的访问次数达到访问次数阈值,则重新认证失败,并对所述请求用户UID进行标记以通过所述标记拒绝下发视频直播流。

于本发明的一实施例中,若所述重新拼装HTTP请求为M3U8格式请求,则直接下发直播列表。

于本发明的一实施例中,若所述重新拼装HTTP请求为TS格式请求,则检测与所述请求用户UID关联的唯一关联值是否存在和是否过期,若存在且未过期则下发视频直播流,若不存在或存在且过期则对重新认证并存储所述唯一关联值后下发视频直播流。

为实现上述目的,本发明还提供一种视频直播HLS防盗链系统,所述视频直播HLS防盗链系统包括:验证值生成模块,用于在接收到HTTP请求时,根据直播业务的URL,时间戳,请求用户UID以及CDN网络服务商提供的约定值生成验证值,并根据所述直播业务的URL,所述时间戳,所述请求用户UID以及所述验证值重新拼装HTTP请求;边缘认证模块,用于在接收到所述重新拼装HTTP请求时,验证所述重新拼装HTTP请求中的验证值,若验证失败则拒绝直播请求,若验证通过则根据所述直播请求的格式直接下发直播列表或检测与所述请求用户UID关联的唯一关联值是否存在和是否过期,若存在且未过期则下发视频直播流,若不存在或存在且过期则请求认证所述请求用户UID并在所述请求用户UID重新通过认证后下发视频直播流;中心认证模块,用于对所述请求用户UID重新认证并存储所述唯一关联值并将认证结果返回至所述边缘认证模块。

于本发明的一实施例中,所述边缘认证模块包括:生成单元,用于依据所述请求用户UID生成所述唯一关联值;第一存储单元,用于存储所述唯一关联值及所述唯一关联值的对应状态;检测单元,用于检测所述本地存储单元是否预先存储有所述唯一关联值,检测所述唯一关联值是否过期以及检测所述请求用户UID是否对应存在有拒绝标记;请求认证单元,用于请求对所述请求用户UID进行重新认证和对所述唯一关联值进行重新存储;直播流下发单元,用于下发视频直播流。

于本发明的一实施例中,所述中心认证模块具体包括:第二存储单元,用于存储所述唯一关联值,所述请求用户UID的封存状态,有效期以及所述请求用户UID于不同IP的访问次数;认证单元,用于认证所述请求用户UID的封存状态,有效期以及所述请求用户UID于不同IP的访问次数;标记单元,用于在所述请求用户UID被封存或所述请求用户UID超过有效期或所述请求用户UID于不同IP的访问次数达到访问次数阈值时,对所述请求用户UID进行标记以供所述边缘认证模块通过所述标记拒绝下发视频直播流;发送单元,用于将认证结构发送至所述边缘认证模块。

于本发明的一实施例中,于所述边缘认证模块中,若所述重新拼装HTTP请求为M3U8格式请求,则直接下发直播列表。

于本发明的一实施例中,于所述边缘认证模块中,若所述重新拼装HTTP请求为TS格式请求,则检测与所述请求用户UID关联的唯一关联值是否存在和是否过期,若存在且未过期则下发视频直播流,若不存在或存在且过期则对重新认证并存储所述唯一关联值后下发视频直播流。

如上所述,本发明的一种视频直播HLS防盗链方法及系统,具有以下有益效果:

本发明可以有效解决直播视频被盗,屏蔽间接非法的资源请求,大大减轻服务器及带宽的压力。

附图说明

图1显示为本发明的一种视频直播HLS防盗链方法的流程示意图。

图2显示为本发明的一种视频直播HLS防盗链方法中拼装直播请求的流程示意图。

图3显示为本发明的一种视频直播HLS防盗链方法中直播下发的流程示意图。

图4显示为本发明的一种视频直播HLS防盗链方法中认证的流程示意图。

图5显示为本发明的一种视频直播HLS防盗链系统的原理框图。

图6显示为本发明的一种视频直播HLS防盗链系统的应用场景示意图。

图7显示为本发明的一种视频直播HLS防盗链系统中边缘认证模块的原理框图。

图8显示为本发明的一种视频直播HLS防盗链系统中中心认证模块的原理框图。

元件标号说明

1 视频直播HLS防盗链系统

100 验证值生成模块

200 边缘认证模块

201 生成单元

202 第一存储单元

203 检测单元

204 直播流下发单元

205 请求认证单元

300 中心认证模块

301 第二存储单元

302 认证单元

303 标记单元

304 发送单元

S100~S109 步骤

具体实施方式

以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。

本实施例的目的在于提供一种视频直播HLS防盗链方法及系统,用于解决现有技术中防盗链安全性不高,容易被破解的问题。以下将详细阐述本实施例中一种视频直播HLS防盗链方法及系统的原理及实施方式,使本领域技术人员不需要创造性劳动即可理解本实施例的一种视频直播HLS防盗链方法及系统。

本实施例在互联网视频直播领域提出一种解决视频直播HLS(HTTP Live Streaming)盗链技术,尤其是在针对直播HLS协议的CDN防盗链的情况,这种技术可以有效解决直播视频被盗,屏蔽间接非法的资源请求,大大减轻服务器及带宽的压力。

本实施例提供一种视频直播HLS防盗链方法,包括:在接收到HTTP请求时,根据直播业务的URL,时间戳,请求用户UID以及CDN网络服务商提供的约定值生成验证值,并根据所述直播业务的URL,所述时间戳,所述请求用户UID以及所述验证值重新拼装HTTP请求;在接收到所述重新拼装HTTP请求时,验证所述重新拼装HTTP请求中的验证值,若验证失败则拒绝直播请求,若验证通过则根据所述直播请求的格式直接下发直播列表或检测与所述请求用户UID关联的唯一关联值是否存在和是否过期,若存在且未过期则下发视频直播流,若不存在或存在且过期则对所述请求用户UID重新认证并存储所述唯一关联值后下发视频直播流。具体地,如图1所示,所述视频直播HLS防盗链方法可以分为以下步骤:

步骤S101,在接收到HTTP请求时,根据直播业务的URL,时间戳,请求用户UID以及CDN网络服务商提供的约定值生成验证值。

步骤S102,根据所述直播业务的URL,所述时间戳,所述请求用户UID以及所述验证值重新拼装HTTP请求。

具体地,拼装直播请求的过程如图2所示。首先接收HTTP请求,然后检测请求参数是否有效,例如检测请求参数UID及请求头-直播业务URL是否有效,如无效,则拒绝直播请求,返回bad request给用户,若有效则依据直播业务URI、时间戳、UID及约定值(例如为key)(与CDN厂商双方协商约定的)生成验证值(MD5值)例如为k。然后根据所述URL,所述时间戳,所述请求用户UID以及所述验证值重新拼装HTTP请求,具体利用直播业务URL、k、UID及时间戳重新拼装直播业务URL,然后重定向返回拼装好的直播业务URL。

步骤S103,在接收到所述重新拼装HTTP请求时,验证所述重新拼装HTTP请求中的验证值,若验证失败则执行步骤S104,拒绝直播请求,若验证通过则继续执行步骤S105或执行步骤106。其中,若所述重新拼装HTTP请求为M3U8格式请求则继续执行步骤S105,若所述重新拼装HTTP请求为TS格式请求,则继续执行步骤S106。

步骤S105,根据所述直播请求的格式直接下发直播列表。于本实施例中,若所述重新拼装HTTP请求为M3U8格式请求,则直接下发直播列表。

步骤S106,检测与所述请求用户UID关联的唯一关联值是否存在,若不存在,则继续执行步骤S107,若存在,则继续执行步骤S108。

步骤S107,对所述请求用户UID重新认证并存储所述唯一关联值后下发视频直播流。

步骤S108,检测与所述请求用户UID关联的唯一关联值是否过期,若未过期则执行步骤S109,下发视频直播流,若过期则返回执行步骤S107,对所述请求用户UID重新认证并存储所述唯一关联值后下发视频直播流。即于本实施例中,若所述重新拼装HTTP请求为TS格式请求,则检测与所述请求用户UID关联的唯一关联值是否存在和是否过期,若存在且未过期则下发视频直播流,若不存在或存在且过期则对重新认证并存储所述唯一关联值后下发视频直播流。

其中,于本实施例中,如图3所示,首先接收重新拼装的HTTP请求,验证所述验证值是否有效,若验证值无效,则拒绝直播请求,若有效,则检测与所述请求用户UID关联的唯一关联值是否存在和是否过期,若存在且未过期则下发视频直播流,若不存在或存在且过期则对所述请求用户UID重新认证并存储所述唯一关联值后下发视频直播流。其中所述检测与所述请求用户UID关联的唯一关联值是否存在和是否过期,若存在且未过期则下发视频直播流,若不存在或存在且过期则对所述请求用户UID重新认证并存储所述唯一关联值后下发视频直播流具体包括:依据所述请求用户UID生成所述唯一关联值,检测本地是否预先存储有所述唯一关联值,若否,则请求对所述请求用户UID进行重新认证和对所述唯一关联值进行重新存储,若是,则继续检测所述唯一关联值是否过期,若是,则请求对所述请求用户UID进行重新认证和对所述唯一关联值进行重新存储,若否,则下发视频直播流。

例如,接收用户M3U8/TS请求,检测请求参数以及k的合法性,如无效则返回bad request给用户,有效则依据UID生成key,检查key是否存在,如不存在,则将TS请求透传进行认证,然后检查返回状态,若存在则继续检测key是否过期,如过期,则将TS请求透传进行认证,然后检查返回状态,若未过期则检测是否有拒绝标志,如有,拒绝直播请求,不下发直播流给用户,否则下发视频直播流。

于本实施例中,对所述请求用户UID重新认证具体包括:检测所述请求用户UID的封存状态,有效期以及所述请求用户UID于不同IP的访问次数,若所述请求用户UID被封存所述请求用户UID超过有效期或所述请求用户UID于不同IP的访问次数达到访问次数阈值,则重新认证失败,并对所述请求用户UID进行标记以通过所述标记拒绝下发视频直播流。

如图4所示,重新认证的具体过程如下:首先接收认证请求,具体为接收TS请求,然后检测请求是否有效,例如检测请求参数以及请求头—客户端地址,如无效则拒绝直播请求,若有效则检测唯一关键之是否存在,即检测针对UID的key是否存在,如果不存在,则存储UID对应的key,若存在则检测唯一关联值是否被封存,即检测UID是否被封存,如果封存,就返回403Forbidden,若没有封存则检测IP的访问次数是否超过阈值,即检测同一key情况下不同客服端访问的次数,即IP次数是否超过阈值,如果超过阈值,将UID进行封存,同时返回403Forbidden,若没有封存则认证成功。

如图5所示,本实施例还提供一种视频直播HLS防盗链系统1,所述视频直播HLS防盗链系统1包括:验证值生成模块100,边缘认证模块200以及中心认证模块300。其中,所述验证值生成模块100可应用于验证值生成服务器中,所述边缘认证模块200可应用于边缘认证服务器中,所述中心认证模块300可应用于中心认证服务器中。验证值生成服务器,边缘认证服务器,中心认证服务器以及请求观看视频直播的用户间的场景示意图如图6所示。

于本实施例中,所述验证值生成模块100用于在接收到HTTP请求时,根据所述直播业务的URL,时间戳,请求用户UID以及CDN网络服务商提供的约定值生成验证值,并根据所述直播业务的URL,所述时间戳,所述请求用户UID以及所述验证值重新拼装HTTP请求。

具体地,于本实施例中,所述验证值生成模块100应用于验证值生成服务器中,所述验证值生成服务器也叫k生成服务器,用于接收客户端请求生成k,并重新拼装好直播业务请求URL。

例如,客户端请求格式为http://create-k-dns/index.html?UID=value(UID必须全网唯一),并且携带直播业务URL的请求头:http://cdn-dns/.../index.m3u8,然后依据直播业务的URI、时间戳、UID以及Key(与CDN厂商约定)计算MD5值,即为k。最后重新拼装直播业务的URL,如:http://cdn-dns/.../index.m3u8?k=value&UID=value&t=value。默认以location:..返回给客户端,通过配置也支持以http body方式返回给客户端。

于本实施例中,所述边缘认证模块200用于在接收到所述重新拼装HTTP请求时,验证所述重新拼装HTTP请求中的验证值,若验证失败则拒绝直播请求,若验证通过则根据所述直播请求的格式直接下发直播列表或检测与所述请求用户UID关联的唯一关联值是否存在和是否过期,若存在且未过期则下发视频直播流,若不存在或存在且过期则请求认证所述请求用户UID并在所述请求用户UID重新通过认证后下发视频直播流。

具体地,于本实施例中,如图7所示,所述边缘认证模块200包括:生成单元201,用于依据所述请求用户UID生成所述唯一关联值;第一存储单元202,用于存储所述唯一关联值及所述唯一关联值的对应状态;检测单元203,用于检测所述本地存储单元是否预先存储有所述唯一关联值,检测所述唯一关联值是否过期以及检测所述请求用户UID是否对应存在有拒绝标记;请求认证单元205,用于请求对所述请求用户UID进行重新认证和对所述唯一关联值进行重新存储;直播流下发单元204,用于下发视频直播流。

其中,于所述边缘认证模块200中,若所述重新拼装HTTP请求为M3U8格式请求,则直接下发直播列表;若所述重新拼装HTTP请求为TS格式请求,则检测与所述请求用户UID关联的唯一关联值是否存在和是否过期,若存在且未过期则下发视频直播流,若不存在或存在且过期则对重新认证并存储所述唯一关联值后下发视频直播流。

具体地,于本实施例中,所述边缘认证模块200应用于边缘认证服务器中。具体地,所述边缘认证服务器设置配置参数UID的有效期。首先检测请求参数UID、k,然后验证k的合法性,如果k合法,进行以下步骤:

如果是M3U8的请求,直接将列表返回给客户端。

如果是TS请求,对于第一次请求(没有存储UID对应的key)或key过期,将TS请求透传给中心认证服务器进行认证,如果认证通过,存储key并下发流给客户端;如果key没有过期,直接将流下发给客户端。

当然,所述边缘认证服务器也可以通过配置设置透传频率(每隔多少个TS请求向中心服务器透传一次)。

于本实施例中,所述中心认证模块300用于对所述请求用户UID重新认证并存储所述唯一关联值并将认证结果返回至所述边缘认证模块200。

具体地,于本实施例中,如图8所示,所述中心认证模块300具体包括:第二存储单元301,用于存储所述唯一关联值,所述请求用户UID的封存状态,有效期以及所述请求用户UID于不同IP的访问次数;认证单元302,用于认证所述请求用户UID的封存状态,有效期以及所述请求用户UID于不同IP的访问次数;标记单元303,用于在所述请求用户UID的封存状态或所述请求用户UID超过有效期或所述请求用户UID于不同IP的访问次数达到访问次数阈值时,对所述请求用户UID进行标记以供所述边缘认证模块200通过所述标记拒绝下发视频直播流;发送单元304,用于将认证结构发送至所述边缘认证模块200。

具体地,于本实施例中,所述中心认证模块300应用于中心认证服务器中。所述中心认证服务器配置UID封存时长、UID有效期以及同一UID下不同IP访问次数阈值。如果UID被封存或超出IP访问次数阈值,返回403Forbidden给边缘服务器,否则就返回认证通过。如果超出UID有效期,就将UID的不同IP清除,重新记录IP。

综上所述,本发明可以有效解决直播视频被盗,屏蔽间接非法的资源请求,大大减轻服务器及带宽的压力。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。

上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。

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