一种安全访问网页的方法、客户端和服务器
技术领域
本发明涉及互联网技术领域,具体地说,涉及一种安全访问网页的方法、客户端和服务器。
背景技术
互联网时代的迅速发展带来巨大商机,网站为商家发布信息、提供服务、开展业务等工作提供了有效手段,也带来了巨大的便利。各个商家都想更广泛地利用互联网推行自己的业务和服务。然而也有不少非法分子采用非法手段推广自己业务以获取利益。例如:通过非法路由网页跳转的方法将用户正常网页访问重定向到广告页面或者其他包含金钱诈骗信息的网站里面,诱导用户进行消费。这种行为一方面违背了用户的浏览意愿,给用户带来时间甚至金钱的损耗。另一方面也损害了正当商家的利益。
因此如何能够识别发现这一问题,并且及时通知用户,使得用户不去访问这些恶意的跳转网页地址,成为互联网安全方面需要解决的的一个重要问题。
发明内容
鉴于上述,本发明提出了一种安全访问网页的方法、客户端和服务器,通过在跨域重定向过程中加入签名验证的环节,能够使用户利用是否含有签名信息判断出重定向响应是否是安全的,如果不安全,则提示用户停止访问,提高用户体验。
根据本发明的一个方面,提供了一种安全访问网页的方法,包括:
向网页服务器发送网页访问请求并记录所述网页对应的域名;接收重定向响应;判断所述重定向响应是否为跨域重定向响应;如果所述重定向响应是跨域重定向响应,则在判断出所述重定向响应中没有签名信息时,给出网页访问错误的提示。
在上述方面的一个或多个示例中,如果所述重定向响应中有签名信息,则提取出所述签名信息,利用所述签名信息对所述重定向响应进行安全验证;当所述安全验证通过时,根据所述重定向响应继续访问网页。
在上述方面的一个或多个示例中,所述签名信息是经过加密处理的,提取出所述签名信息,利用所述签名信息进行安全验证包括:基于所述域名获取所述域名的公钥;利用所述公钥对所述签名信息进行解密;利用解密后的签名信息进行安全验证。
在上述方面的一个或多个示例中,所述签名信息包括密文和摘要密文,所述重定向响应中包含有跳转网页地址,利用所述公钥对所述签名信息进行解密,利用解密后的签名信息进行安全验证包括:利用所述公钥对所述密文进行解密得到明文,利用所述公钥对所述摘要密文解密得到摘要明文,然后利用哈希算法算出所述明文的摘要,将所述明文的摘要与所述对摘要密文解密得到的摘要明文进行对比,如果一致则继续判断所述明文中的网页地址是否和所述跳转网页地址一致,如果一致,则表示所述安全验证通过。
根据本发明的另一个方面,提供了一种安全访问网页的方法,包括:
接收来自客户端的网页访问请求;判断所述访问请求是否需要跨域重定向;当所述请求需要跨域重定向时,生成签名信息;在重定向响应中加入所述签名信息并发送给所述客户端供所述客户端利用所述签名信息验证所述重定向响应的安全性。
在上述方面的一个或多个示例中,在当所述请求需要跨域重定向时,生成签名信息包括:利用重定向的网页地址生成一段包含所述重定向网页地址信息的文本;利用哈希算法算出所述文本的摘要;利用私钥对所述文本的正文进行加密得到密文,对所述摘要进行加密得到摘要密文;将所述密文和摘要密文作为签名信息。
根据本发明的另一个方面,提供了一种安全访问网页的客户端,包括:
网页访问模块,用于向网页服务器发送网页访问请求并记录所述网页对应的域名;接收模块,用于接收重定向响应;判断模块,用于判断所述重定向响应是否为跨域重定向响应,如果是,则所述判断模块继续判断所述重定向响应中是否有签名信息;提示模块,用于在所述判断模块判断出所述重定向响应中没有签名信息时,给出网页访问错误的提示。在上述方面的一个或多个示例中,所述客户端还包括安全验证模块,用于当所述重定向响应中有签名信息时提取出所述重定向响应中的签名信息,利用所述签名信息对所述重定向响应进行安全验证;所述网页访问模块还用于当所述安全验证通过时,根据所述重定向响应继续访问网页。
在上述方面的一个或多个示例中,所述安全验证模块包括:公钥获取单元,用于基于所述域名获取所述域名的公钥;解密单元,用于利用所述公钥对所述签名信息进行解密;验证单元,用于利用解密后的签名信息进行安全验证。
在上述方面的一个或多个示例中,所述签名信息包括密文和摘要密文,所述重定向响应中包含有跳转网页地址,所述验证单元还包括计算子单元和判断子单元,所述解密单元利用所述公钥对所述密文进行解密得到明文,利用所述公钥对所述摘要密文解密得到摘要明文,然后所述计算子单元利用哈希算法算出所述明文的摘要,所述判断子单元将所述明文的摘要与所述对摘要密文解密得到的摘要明文进行对比,如果一致则继续判断所述明文中的网页地址是否和所述跳转网页地址一致,如果一致,则表示所述安全验证通过。
根据本发明的另一个方面,提供了一种安全访问网页的服务器,包括:访问请求接收模块,用于接收来自客户端的网页访问请求;重定向判断模块,用于判断所述访问请求是否需要跨域重定向;签名信息生成模块,用于当所述请求需要跨域重定向时,生成签名信息;响应发送模块,用于在重定向响应中加入所述签名信息并发送给所述客户端供客户端利用所述签名信息验证所述重定向响应的安全性。
在上述方面的一个或多个示例中,所述签名信息生成模块包括:文本生成单元,用于利用重定向的网页地址生成一段包含所述重定向网页地址信息的文本;计算单元,用于利用哈希算法算出所述文本的摘要;加密单元,用于利用私钥对所述文本的正文进行加密得到密文,对所述摘要进行加密得到摘要密文;合成单元,用于将所述密文和摘要密文合成作为签名信息。
有益效果
利用上述安全访问网页的方法、客户端和服务器,通过服务器在跨域重定向响应中加入签名信息供客户端利用是否含有所述签名信息对所述重定向响应进行安全验证,识别所述重定向响应是否被恶意修改,如果识别出所述重定向响应是不安全的,则提示用户停止访问网页,实现跨域访问网页的安全性。
为了实现上述以及相关目的,本发明的一个或多个方面包括后面将详细说明并在权利要求中特别指出的特征。下面的说明以及附图详细说明了本发明的某些示例性方面。然而,这些方面指示的仅仅是可使用本发明的原理的各种方式中的一些方式。此外,本发明旨在包括所有这些方面以及它们的等同物。
附图说明
根据下述参照附图进行的详细描述,本发明的上述和其他目的、特征和优点将变得更加显而易见。在附图中:
图1示出了根据本发明的安全访问网页的方法的流程图;
图2示出了根据本发明的另一实施例的安全访问网页的方法的流程图;
图3示出了根据本发明的另一实施例的安全访问网页的方法的流程图;
图4示出了根据本发明实施例的安全访问网页的客户端的方框示意图;
图5示出了根据本发明另一实施例的安全访问网页的服务器的方框示意图。
在所有附图中相同的标号指示相似或相应的特征或功能。
具体实施方式
下面描述本公开的各个方面。应该明白的是,本文的教导可以以多种多样形式具体体现,并且在本文中公开的任何具体结构、功能或两者仅仅是代表性的。基于本文的教导,本领域技术人员应该明白的是,本文所公开的一个方面可以独立于任何其它方面实现,并且这些方面中的两个或多个方面可以按照各种方式组合。例如,可以使用本文所阐述的任何数目的方面,实现装置或实践方法。另外,可以使用其它结构、功能、或除了本文所阐述的一个或多个方面之外或不是本文所阐述的一个或多个方面的结构和功能,实现这种装置或实践这种方法。此外,本文所描述的任何方面可以包括权利要求的至少一个元素。
下面将参照附图描述本发明的各个实施例。
图1示出了根据本发明的实施例的安全访问网页的方法的流程图。
如图1所示,在步骤S110,向网页服务器发送网页访问请求并记录所述网页对应的域名。
在本发明的一个示例中,所述网页访问请求是浏览器客户端发出的http请求。所述网页请求可以是用户在浏览器中输入网址后发起的请求,也可以是用户点击超链接触发的请求。当发出所述网页访问请求之后,所述客户端记录下本次访问的网页对应的域名信息。
接着,在步骤S120,接收重定向响应。
在客户端向网页服务器发送网页访问请求之后会收到响应信息。响应信息可以是现有技术中的任一种响应信息。例如:404(未找到),表示服务器找不到请求的网页,对于服务器上不存在的网页经常会返回此代码;200(成功),
表示服务器已成功处理了请求,通常,这表示服务器提供了请求的网页;301或302(重定向),表示请求的网页资源在其他位置,将自动将请求者转到网页资源所在的位置即重定向的网页上去。服务器在判断所述网页访问请求需要重定向之后,会在所述返回给客户端的重定向响应中加入重定向的网页地址,即跳转地址。客户端会根据这个跳转地址去请求所需要的网页资源。
在步骤S130,判断所述重定向响应是否为跨域重定向响应。如果是,则转入步骤S140。如果否,就按常规流程处理,继续进行网页访问。
所述重定向包括跨域重定向和不跨域重定向。跨域重定向说明客户端需要去其他的域名服务器请求所需要的网页资源。
在本发明的一个示例中,在客户端接收到重定向响应之后,要先判断一下重定向的网页地址对应的域名和本次访问的网页地址对应的域名是否是同一个。如果不是,则说明这个重定向响应是一个跨域重定向响应。
步骤S140,在判断出所述重定向响应中没有签名信息时,给出网页访问错误的提示。
在本发明的一个示例中,在所述网页服务器确认所述网页访问请求需要跨域访问时会生成一个签名信息并加入到所述重定向响应中。所述客户端收到重定向响应之后会判断所述重定向响应中是否有签名信息。所述签名信息是由所述网页服务器生成一段包含重定向的网页地址的文本然后进行加密形成的。具体过程是这样的:利用重定向的网页地址生成一段包含所述重定向网页地址信息的文本;利用哈希算法算出所述文本的摘要;利用私钥对所述文本的正文进行加密得到密文,对所述摘要进行加密得到摘要密文;将所述密文和摘要密文作为签名信息。
在本发明的一个示例中,如果所述重定向响应中没有签名信息,则认为所述重定向响应是不安全的。此时会终止网页访问行为,给出网页访问错误的提示。因为这个重定向响应有可能在由网页服务器返回给客户端的途中被拦截并修改了,或者所述重定向响应根本不是来自于所述网页服务器,而是来自于一些恶意的代理服务器。例如,所述网页访问请求在经过代理服务器时代理服务器没有将所述网页请求发送给所述服务器,而是直接返回一个代理服务器自己伪造的重定向响应给客户端,以引导客户端根据所述重定向响应中的跳转地址访问其指定的网站。
在本发明的一个示例中,当所述重定向响应中有签名信息时,会提取出所述重定向响应中的签名信息,利用所述签名信息来验证所述重定向响应的安全性。由于所述重定向响应中包含有跳转网页地址,即让客户端跳转访问的url信息,所以有一些不法分子可能会拦截到这个重定向响应并修改所述重定向响应中的跳转地址使修改后的跳转网页地址指向不法分子设定的页面,例如广告页面或者含有诈骗信息的页面。
在本发明的一个示例中,客户端基于所述域名获取所述域名的公钥,所述域名的公钥可以通过客户端查询CA认证系统来获取到。客户端利用所述公钥对所述签名信息进行解密,然后利用解密后的签名信息进行安全验证。
在本发明的一个示例中,所述签名信息包括密文和摘要密文,客户端利用所述公钥对所述密文进行解密得到明文,所述明文中会包含重定向的网页地址,利用所述公钥对所述摘要密文解密得到摘要明文,然后利用哈希算法算出所述明文的摘要,将所述明文的摘要与所述对摘要密文解密得到的摘要明文进行对比,如果不一致,则表示安全验证不通过,流程结束。这种情况下说明所述签名信息不是由所述网页服务器利用私钥加密的,有可能是其他服务器伪造的签名信息。因为所述网页服务器和所述域名是对应的关系,如果网页服务器利用私钥加密后的签名信息,客户端利用所述域名的公钥进行解密之后应该是可以对应的上的。而其他服务器没有所述网页服务器的私钥,所以伪造出来的签名信息利用所述公钥进行解密之后会出现错误,明文的摘要与所述对摘要密文解密得到的摘要明文进行对比后会不一致。
如果一致则继续判断所述明文中得到的重定向的网页地址是否和所述重定向响应中的跳转网页地址一致,如果一致,则表示所述安全验证通过,所述重定向响应继续访问网页。如果安全验证通过,则说明所述重定向响应是安全的,客户端继续访问所述重定向响应中的跳转网页地址,获取网页资源。否则,给出网页访问错误的提示。如果所述网页服务器返回的重定向响应被拦截并修改了其中的跳转网页地址,而签名信息没有删除或者修改的话,客户端收到的签名信息经过解密后是可以通过安全验证的。但是所述签名信息中包含了重定向的网页地址,即原本的重定向响应中的跳转网页地址。如果二者对比不一致,则说明跳转网页地址被修改了,这个时候客户端就不会利用这个修改后跳转地址继续访问网页,会给出网页访问错误的提示,提示用户这个跳转地址是不安全的,建议用户停止访问网页。
图2示出了根据本发明的另一个实施例的安全访问网页的方法的流程图。
步骤S210,接收来自客户端的网页访问请求。
在本发明的一个示例中,网页服务器接收来自客户端的网页访问请求。
步骤S220,判断所述访问请求是否需要跨域重定向。如果是,则转入步骤S230。否则,转入步骤S250,按照常规流程处理。
在本发明的一个示例中,所述网页服务器在接收到客户端发送的网页访问请求之后要判断一下这个请求是否需要跨域访问。服务器根据所述访问请求中的url结合自身的业务数据可以判断出所述访问请求是否需要跨域访问。例如,所述客户端请求访问的网址是A,所述网页服务器返回一个重定向响应要求客户端转向B。
在步骤S230,生成签名信息。
在本发明的一个示例中,所述网页服务器利用重定向的网页地址生成一段包含所述重定向网页地址信息的文本,利用哈希算法算出所述文本的摘要;利用私钥对所述文本的正文进行加密得到密文,对所述摘要进行加密得到摘要密文;将所述密文和摘要密文作为签名信息。
步骤S240,在重定向响应中加入所述签名信息并发送给所述客户端供客户端利用所述签名信息验证所述重定向响应的安全性。
在本发明的一个示例中,客户端在收到重定向响应之后,基于所述域名获取所述域名的公钥;利用所述公钥对所述签名信息中的密文进行解密得到明文,利用所述公钥对摘要密文解密得到摘要明文,然后利用哈希算法算出所述明文的摘要,将所述明文的摘要与所述对摘要密文解密得到的摘要明文进行对比,如果不一致,则表示安全验证不通过,给出网页访问错误的提示。如果一致则继续判断所述明文中得到的重定向的网页地址是否和所述重定向响应中的跳转网页地址一致,如果一致,则表示所述安全验证通过,继续访问网页。否则,给出网页访问错误的提示。
图3示出了根据本发明的另一实施例的安全访问网页的方法的流程图。
在步骤S310,客户端向网页服务器发送网页访问请求记录所述网页对应的域名。在步骤S320,所述网页服务器接收来自所述客户端的基于域名的网页访问请求。
在步骤S330,所述网页服务器判断所述请求是否需要跨域访问。如果是,则转入步骤S340。否则,转入步骤S335,按常规流程处理。
在步骤S340,所述网页服务器生成签名信息,将所述签名信息加入到重定向响应中发送给所述客户端。
在本发明的一个示例中,所述网页服务器利用重定向的网页地址生成一段包含所述重定向网页地址信息的文本;利用哈希算法算出所述文本的摘要;利用私钥对所述文本的正文进行加密得到密文,对所述摘要进行加密得到摘要密文;将所述密文和所述摘要密文作为签名信息。
在步骤S350,所述客户端接收所述重定向响应。
在步骤S360,判断所述重定向响应是否为跨域重定向响应。如果是,则进入步骤S370,否则,转入步骤S335,按常规流程处理。
步骤S370,判断所述重定向响应中是否有签名信息。如果有,则进入步骤S380,否则,转入步骤S395,给出网页访问出错的提示。
在步骤S380,提取出所述签名信息并利用所述签名信息对所述重定向响应进行安全验证。当所述安全验证通过时,进入步骤S390,根据所述重定向响应继续访问网页。当安全验证不通过时,转入步骤S395,给出网页访问出错的提示。
在本发明的一个示例中,客户端在收到重定向响应之后,提取出所述重定向响应中的所述签名信息;基于基于所述域名获取所述域名的公钥;利用所述公钥对所述密文进行解密得到明文,利用所述公钥对所述摘要密文解密得到摘要明文,然后利用哈希算法算出所述明文的摘要,将所述明文的摘要与摘要明文进行对比,如果不一致,则表示安全验证不通过,流程结束。如果一致则继续判断所述明文中得到的所述重定向的网页地址是否和所述重定向响应中的跳转网页地址一致,如果一致,则表示所述安全验证通过,根据所述重定向响应中的跳转地址继续访问网页。
图4示出了根据本发明的实施例的安全访问网页的客户端400的方框示意图。
如图4所示,安全访问网页的客户端400包括网页访问模块410、接收模块420、判断模块430、提示模块440。
网页访问模块410用于向网页服务器发送网页访问请求并记录所述网页对应的域名。
接收模块420用于接收重定向响应。判断模块430用于判断所述重定向响应是否为跨域重定向响应,如果是,则所述判断模块继续判断所述重定向响应中是否有签名信息;提示模块440,用于在所述判断模块430判断出重定向响应中没有签名信息时,给出网页访问错误的提示。
在本发明的一个示例中,所述服务器还包括安全验证模块(图中未示出)。
所述安全验证模块用于当所述重定向响应中有签名信息时提取出所述重定向响应中的签名信息,利用所述签名信息对所述重定向响应进行安全验证;所述网页访问模块还用于当所述安全验证通过时,网页访问模块410根据所述重定向响应继续访问网页。
在本发明的一个示例中,所述安全验证模块还包括:公钥获取单元(图中未示出),用于基于所述域名获取所述域名的公钥;解密单元(图中未示出),用于利用所述公钥对所述签名信息进行解密;验证单元(图中未示出),用于利用解密后的签名信息进行安全验证。
在本发明的一个示例中,其中,所述签名信息包括密文和摘要密文,所述重定向响应中包含有跳转网页地址,所述验证单元还包括计算子单元和判断子单元,
所述解密单元利用所述公钥对所述密文进行解密得到明文,利用所述公钥对所述摘要密文解密得到摘要明文,然后所述计算子单元利用哈希算法算出所述明文的摘要,所述判断子单元将所述明文的摘要与摘要明文进行对比,如果一致则继续判断所述明文中的网页地址是否和所述跳转网页地址一致,如果一致,则表示所述安全验证通过。
这里要说明的是,上面所述的安全访问网页的客户端400中的两个单元之间的相连可以是物理上的实际连接,也可以是经由其它单元进行的连接,或者是虚拟连接,比如通过数据或者信息交互实现的虚拟连接(在上述单元利用处理器和存储有计算机程序的存储器实现的情况下)。
图5示出了具有根据本发明的安全访问网页的服务器500的方框示意图。如图5所示,所述安全访问网页的服务器500包括访问请求接收模块510、重定向判断模块520、签名信息生成模块530、响应发送模块540。
访问请求接收模块510,用于接收来自客户端的网页访问请求;重定向判断模块520,用于判断所述访问请求是否需要跨域重定向;签名信息生成模块530,用于当所述请求需要跨域重定向时,生成签名信息;响应发送模块540,用于在重定向响应中加入所述签名信息并发送给所述客户端供客户端利用所述签名信息验证所述重定向响应的安全性。
在本发明的一个示例中,所述签名信息生成模块530包括:文本生成单元(图中未示出),用于利用重定向的网页地址生成一段包含所述重定向网页地址信息的文本;
计算单元(图中未示出),用于利用哈希算法算出所述文本的摘要;加密单元(图中未示出),用于利用私钥对所述文本的正文进行加密得到密文,对所述摘要进行加密得到摘要密文;合成单元(图中未示出),用于将所述密文和摘要密文合成作为签名信息。
根据本发明的方法还可以被实现为由处理器(比如CPU)执行的计算机程序,并且存储在移动终端的存储器中。在该计算机程序被处理器执行时,执行本发明的方法中限定的上述功能。
此外,根据本发明的方法还可以实现为一种计算机程序产品,该计算机程序产品包括计算机可读介质,在该计算机可读介质上存储有用于执行本发明的方法中限定的上述功能的计算机程序。
此外,上述方法步骤以及系统单元也可以利用控制器以及用于存储使得控制器实现上述步骤或单元功能的计算机程序的计算机可读存储设备实现。
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,已经就各种示意性组件、
方块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个系统的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现所述的功能,但是这种实现决定不应被解释为导致脱离本发明的范围。
尽管前面公开的内容示出了本发明的示例性实施例,但是应当注意,在不背离权利要求限定的本发明的范围的前提下,可以进行多种改变和修改。
根据这里描述的发明实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明的元素可以以个体形式描述或要求,但是也可以设想多个,除非明确限制为单数。
虽然如上参照图描述了根据本发明的各个实施例进行了描述,但是本领域技术人员应当理解,对上述本发明所提出的各个实施例,还可以在不脱离本发明内容的基础上做出各种改进。因此,本发明的保护范围应当由所附的权利要求书的内容确定。