一种以跳转方式访问第三方资源的方法与流程

文档序号:12161954阅读:2982来源:国知局
一种以跳转方式访问第三方资源的方法与流程

本发明涉及通信技术领域,特别涉及一种以跳转方式访问第三方资源的方法。



背景技术:

互联网上有一些网站不提供内容,通过技术手段绕其它网站的认证,直接在自己的网站上向最终用户提供其它服务提供商的服务内容,骗取最终用户的浏览和点击率。受益者不提供资源或提供很少的资源,而真正的服务提供商却得不到任何的收益。

网站盗链会大量消耗被盗链网站的带宽,而真正的点击率也许会很小,严重损害了被盗链网站的利益。早期的盗链一般是一些比较小的网站盗取一些有实力的大网站的地址,盗链的目标比较有针对性,常见的盗链有以下几种:图片盗链、音频盗链、视频盗链、文件盗链。

而两个网站间合作,b网站允许a网站可以访问自己的资源,也可以获得一定的收益,但b网站并不希望a网站以外的网站可以使用自己的资源,因此a和b网站之间应有一定的信任关系。

通常防止盗链的方式有可以使用HTTP_REFERER1和htaccess文件,结合正则表达式去匹配用户的每一个访问请求。对于每一个HTTP请求,服务器都要查找.htaccess文件。这种方法的问题在于http头中的referer也可以被伪造,对此种盗取资源的方式,服务器无法进行判断。

另一种方法先从客户端获取用户信息,然后根据这个信息和用户请求的文件名字一起加密成字符串(Session ID)作为身份验证。只有当认证成功以后,服务端才会把用户需要的文件传送给客户。这种方法的问题在于,要从 客户端获取一定信息,而如果客户端安全等级较高,就无法获得用户的信息,而且用户不知情的情况下,获取用户的信息有可能触及法律。



技术实现要素:

有鉴于此,本申请提供一种以跳转方式访问第三方资源的方法,在访问第三方资源时,不需要获取用户信息的情况下,避免网站盗链的发生。

为解决上述技术问题,本申请的技术方案是这样实现的:

一种以跳转方式访问第三方资源的方法,该方法包括:

客户端向第一服务器发送访问第一网站的请求;

第一服务器接收到所述访问第一网站的请求时,若确定响应所述请求的数据资源存储在第二网站对应的第二服务器上,则为所述客户端提供访问第二网站的虚拟链接,所述虚拟链接包括:第一网站域名、访问第二网站的资源的虚拟路径和随机数;

客户端在用户点击所述虚拟链接时,向第一服务器发送访问第二网站的资源的请求;

第一服务器接收到客户端发送的访问第二网站的资源的请求时,向所述客户端发送跳转指示,并响应访问第二网站的资源访问地址,所述资源访问地址包括:第二网站域名、资源路径和验证码;所述验证码根据第一网站域名、所述随机数和所述资源路径生成;

客户端接收到第一服务器发送的跳转指示,以及资源访问地址时,向第二服务器发送访问第二网站的请求;该请求中携带所述资源访问地址和所述虚拟链接;

第二服务器接收到所述客户端发送的访问第二网站的请求时,根据该请求携带的虚拟链接中的第一网站域名和随机数,以及该请求中携带的资源访问地址中的资源路径计算验证码,若计算获得的验证码与访问第二网站的请求中携带的资源访问地址中的验证码相同,则响应所述客户端的请求;否则,拒绝响应所述客户端的请求。

由上面的技术方案可知,本申请中第一服务器接收到客户端的请求时,若响应请求的资源在第二服务器上,则为该客户端提供验证码,并提供访问第二服务器的资源路径;第二服务器接收到客户端发送的对应请求时,根据请求中的相关信息进行验证码计算,并在与请求中携带的验证码相同时,才会响应对应的资源。通过该方案,在访问第三方资源时,不需要获取用户信息的情况下,避免网站盗链的发生。

附图说明

图1为本申请实施例中以跳转方式访问第三方资源流程示意图;

图2为本申请实施例中访问第三方资源系统示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,下面结合附图并举实施例,对本发明的技术方案进行详细说明。

本申请实施例中提供一种以跳转方式访问第三方资源的方法,应用于服务器上,可跳转的服务器之间关系是可信的,并且是难以伪造的。

在具体实现时,需要建立可信关系的两个服务器之间建立可信关系,具体实现是时,两个服务器之间进行协商,协商出加密密钥,用于验证码的计算。

下面结合附图,详细说明本申请实施例中以跳转方式访问第三方资源过程。

参见图1,图1为本申请实施例中以跳转方式访问第三方资源流程示意图。具体步骤为:

步骤101,客户端向第一服务器发送访问第一网站的请求。

参见图2,图2为本申请实施例中访问第三方资源系统示意图。图2中第一服务器和第二服务器建立信任关系,配置网站对应资源所在服务器。

图2中,客户端需访问第一网站a.com时,可以以http或https形式,下文以http为例,则发起的访问第一网站的请求为:GET http://a.com。

步骤102,第一服务器接收到所述访问第一网站的请求时,若确定响应所述 请求的数据资源存储在第二网站对应的第二服务器上,则为所述客户端提供访问第二网站的虚拟链接。

本步骤中的资源链接包括:第一网站域名、访问第二网站的资源的虚拟路径和随机数。

第一服务器在接收到客户端发起访问第一网站的请求时,首先向客户端响应200,表明连接成功。然后确定响应该请求的资源是否在本服务器上。

以图2为例,第一服务器预先针对各网站配置对应资源所在服务器,在接收到客户端发起访问第一网站的请求时,若确定响应所述请求的数据资源存储在本服务器上,则使用对应数据资源响应所述客户端的请求。

当根据本地配置确定响应所述请求的数据资源存储在第二网站b.com对应的第二服务器上时,在页面上提供一个资源链接可以访问到b.com上的资源。资源链接的格式可以为:http://a.com/[访问第二网站的资源的虚拟路径][连接符][随机数],如http://a.com/bcomresource&13513513613,其中,a.com为第一网站域名,bcomresource为访问第二网站的资源的虚拟路径,&为连接符,13513513613为随机数;上述资源链接为本申请实施例列举的一个例子,具体实现时,不限于该种表项形式。

步骤103,客户端在用户点击所述虚拟链接时,向第一服务器发送访问第二网站的资源的请求。

仍然以图2为例,客户端发起的访问第二网站的资源链接,如http://a.com/bcomresource&13513513613。

步骤104,第一服务器接收到客户端发送的访问第二网站的资源的请求时,向所述客户端发送跳转指示,并响应访问第二网站的资源访问地址。

资源访问地址包括:第二网站域名、资源路径和验证码;所述验证码根据第一网站域名、所述随机数和所述资源路径生成;具体生成方式如下:

第一服务器将第一网站域名加上随机数,再加上资源路径,以第一服务器和第二服务器协商的加密密钥按预设加密算法进行加密,对加密结果使用预设校验算法校验,并将校验结果生成BASE64编码作为验证码。

仍然以图2为例,第一服务器接收到这个资源链接时,向客户端发送http编码302或303用于向客户端发送跳转指示,并响应第二网站b.com的资源访问地址,该资源访问地址,如URL,可以在响应的location字段中给出。

资源访问地址的格式可以为http://b.com/[资源路径][连接符][验证码],验证码生成的算法是将第一网站域名a.com作为字符串加上已生的随机数13513513613,再加上资源路径,以第一服务器和第二服务器间协商的密钥加密,对加密结果使用预设校验算法校验,并将校验结果生成BASE64编码。

本申请实施例中的预设加密算法、以及预设校验算法均不作具体限制,预设加密算法如:AES、DES等,预设校验算法如:SHA-1、CRC等。

本例中以预设加密算法为AES,预设校验算法为SHA-1来给出验证码的计算:

验证码=Base64(SHA(AES(‘a.com’+’13513513613’+[资源路径],加密密钥)))。

步骤105,客户端接收到第一服务器发送的跳转指示,以及资源访问地址时,向第二服务器发送访问第二网站的请求。

该请求中携带所述资源访问地址和所述虚拟链接。

具体实现时,可以在访问头中增加Referer字段,用于携带虚拟链接,下面给出客户端发起的访问第二网站的请求的格式:

GET/[资源路径][连接符][验证码]HTTP/1.1

Host:b.com

Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

Accept-Language:zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3

Accept-Encoding:gzip,deflate

Referer:http://a.com/bcomresource&13513513613

Connection:keep-alive

步骤106,第二服务器接收到客户端发送的访问第二网站的请求时,根据该请求携带的虚拟链接中的第一网站域名和随机数,以及该请求中携带的资源访问地址中的资源路径计算验证码。

本申请实施例中在第二服务器计算验证码的过程同在第一服务上计算验证码的过程。具体为:

第二服务器将该请求携带的虚拟链接中的第一网站域名加上随机数,再加上访问第二网站的请求中携带的资源访问地址中的资源路径,以第一服务器和第二服务器协商的加密密钥按预设加密算法进行加密,对加密结果使用预设校验算法校验,并将校验结果生成BASE64编码作为当前计算获得的验证码。

步骤107,第二服务器若计算获得的验证码与访问第二网站的请求中携带的资源访问地址中的验证码相同,则响应所述客户端的请求;否则,拒绝响应所述客户端的请求。

综上所述,本申请中第一服务器接收到客户端的请求时,若响应请求的资源在第二服务器上,则为该客户端提供验证码,并提供访问第二服务器的资源路径;第二服务器接收到客户端发送的对应请求时,根据请求中的相关信息进行验证码计算,并在与请求中携带的验证码相同时,才会响应对应的资源。通过该方案,在访问第三方资源时,不需要获取用户信息的情况下,避免网站盗链的发生。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

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