页面显示方法及装置与流程

文档序号:11250898阅读:1311来源:国知局
页面显示方法及装置与流程

本申请属于网络技术领域,具体地说,涉及一种页面显示方法及装置。



背景技术:

iframe是一种html(hypertextmarkuplanguage,超级文本标记语言)标签,通过iframe可以在一个站点的页面中嵌入另外一个站点的页面。

例如,在站点a的页面中通过iframe可以嵌入站点b的页面,其中,站点b的页面即称为iframe页面,站点a的页面也即为该iframe页面对应的父页面,从而进行页面显示的客户端,比如浏览器,可以在站点a的父页面中,向站点b发起调用iframe页面并进行显示的请求,实现跨域调用。

而由于任意的站点均可以通过iframe在其页面中嵌入其它站点的页面,这就存在恶意站点恶意调用iframe页面的情况,以窃取iframe页面提供的信息等,比如iframe页面为一个用户登录页面时,恶意站点就可以窃取用户提供的登录信息。

为了提高跨域调用安全性,避免iframe页面被恶意调用,现有技术中,通过在客户端配置判断逻辑,由客户端执行判断逻辑,对调用iframe页面的父页面进行判断,判断父页面是否在预先设置的白名单内,如果在白名单内,客户端即可以向服务端请求获取iframe页面进行显示,如果不在白名单内,则拒绝向服务端请求获取iframe页面。

但是,现有技术的这种方式,判断逻辑的逻辑代码都暴露在客户端,存在泄露风险,恶意攻击站点可以修改判断逻辑或者白名单,而使得可以继续调用iframe页面,因此安全性仍然较低。



技术实现要素:

有鉴于此,本申请所要解决的技术问题是提供了一种页面显示方法及装置,提高了跨域调用的安全性。

为了解决上述技术问题,本申请公开了一种页面显示方法,包括:

服务端接收客户端发送的iframe页面显示请求;

根据所述iframe页面显示请求,确定调用所述iframe页面的父页面;

判断所述父页面是否满足调用条件;

在所述父页面满足调用条件时,指示所述客户端显示所述iframe页面;

在所述父页面不满足调用条件时,指示所述客户端不显示所述iframe页面。

优选地,所述判断所述iframe页面嵌套的父页面是否满足调用条件包括:

判断所述父页面是否位于白名单内,和/或所述父页面是否满足校验规则;所述白名单中包括预先配置的允许调用所述iframe页面的页面信息;

优选地,所述判断所述父页面是否满足校验规则包括:

判断所述父页面的页面地址中是否未包括过滤关键信息;

如果是,确定所述父页面满足校验规则;

如果否,确定所述父页面不满足校验规则。

优选地,所述判断所述父页面是否满足调用条件包括:

从策略中心设备获取预先配置的调用条件;所述策略中心设备用于接收配置请求,根据所述配置请求配置或更新所述调用条件;

判断所述父页面是否满足所述调用条件。

优选地,在判断所父页面不满足调用条件之后,所述方法还包括:

判断是否连续预设次数接收到所述客户端从所述父页面发起的所述iframe页面显示请求;

在连续预设次数接收到所述客户端从所述父页面发起的所述iframe页面显示请求时,根据所述父页面的页面信息更新所述调用条件。

一种页面显示装置,包括:

请求接收模块,用于接收客户端发送的iframe页面显示请求;

页面确定模块,用于根据所述iframe页面显示请求,确定调用所述iframe页面的父页面;

请求判断模块,用于判断所述父页面是否满足调用条件;

显示触发模块,用于在所述父页面满足调用条件时,指示所述客户端显示所述iframe页面;在所述父页面不满足调用条件时,指示所述客户端不显示所述iframe页面。

优选地,所述请求判断模块具体用于:

判断所述父页面是否位于白名单内,和/或所述父页面是否满足校验规则;所述白名单中包括预先配置的允许调用所述iframe页面的页面信息;

优选地,所述请求判断模块判断所述父页面是否满足校验规则具体是:

判断所述父页面的页面地址中是否未包括过滤关键信息,如果是,确定所述父页面满足校验规则,如果否,确定所述父页面不满足校验规则。

优选地,所述请求判断模块包括:

获取单元,用于从策略中心设备获取预先配置的调用条件;所述策略中心设备用于接收配置请求,根据所述配置请求配置或更新所述调用条件;

判断单元,用于判断所述父页面是否满足所述调用条件。

优选地,所述装置还包括:

异常判断模块,用于判断是否连续接收到所述客户端从所述父页面发起的所述iframe页面显示请求;

配置更新模块,用于在所述异常判断模块结果为是时,根据所述父页面的页面信息更新所述调用条件。

与现有技术相比,本申请可以获得包括以下技术效果:

服务端接收客户端发送的的iframe页面显示请求,确定调用所述iframe 页面的父页面,并判断所述父页面是否满足调用条件,在所述父页面满足调用条件,再指示客户端显示iframe页面,否则指示客户端拒绝显示该iframe页面,由于在服务端进行安全性判断,可以避免泄露风险,提高了跨域调用的安全性,且在服务端可以对调用条件进行动态配置,随时更新,保证调用条件的准确性,进一步提高了跨域调用的安全性。

当然,实施本申请的任一产品必不一定需要同时达到以上所述的所有技术效果。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1是本申请实施例的一种页面显示方法一个实施例的流程图;

图2~图4分别是本申请实施例中的页面显示示意图;

图5是本申请实施例的一种页面显示装置一个实施例的结构示意图;

图6是本申请实施例的一个页面显示装置一个实施例的结构示意图。

具体实施方式

以下将配合附图及实施例来详细说明本申请的实施方式,藉此对本申请如何应用技术手段来解决技术问题并达成技术功效的实现过程能充分理解并据以实施。

本申请技术方案主要应用于跨域调用场景中,由于任意的站点均可以通过iframe在其页面中嵌入其它站点的页面,这就存在恶意站点恶意调用iframe页面的情况。

为了保证跨域调用的安全性,发明人经过一系列研究提出本申请的技术方案,在本申请实施例中,由服务端接收客户端的iframe页面显示请求,确定调用所述iframe页面的父页面,并判断iframe页面的父页面是否满足调用条件,在iframe页面的父页面满足调用条件时,再指示客户端显示iframe 页面,否则即指示客户端不显示该iframe页面,由于在服务端进行安全性判断,可以避免代码泄露风险,提高了安全性,且在服务端可以对调用条件进行动态配置,随时更新,保证调用条件的准确性,进一步提高了跨域调用的安全性。

下面结合附图对本申请技术方案进行详细描述。

图1为本申请实施例提供的一种页面显示方法一个实施例的流程图,本实施例所述技术方案应用于服务端中,具体可以是web服务器中,该方法可以包括以下几个步骤:

101:接收客户端的iframe页面显示请求。

其中,客户端可以是指浏览器(browser)或者客户机(client)。

iframe页面显示请求可以是用户通过点击等触发操作,操作客户端当前站点显示页面中通过iframe创建的iframe框架而触发的。

比如在a站点的页面中嵌入b站点的iframe框架,这个iframe框架可以为登录框架,以接收登录信息登录b站点,b站点的页面即为iframe页面,用户输入登录信息请求调用b站点的页面,即会触发iframe页面显示请求。

102:根据所述iframe页面显示请求,确定调用所述iframe页面的父页面。

103:判断所述父页面是否满足调用条件,如果是,执行步骤103,如果否,执行步骤104。

104:指示客户端显示所述iframe页面。

105:指示客户端不显示所述iframe页面。

在本申请实施例中,由服务端判断调用iframe页面的父页面是否满足调用条件,在满足调用条件时,再指示客户端显示iframe页面,如果不满足调用条件,即指示客户端不显示iframe页面。调用条件可以根据实际情况设置,以避免恶意站点的调用,由于在服务端进行安全性判断,可以避免代码泄露风险,提高了安全性,且在服务端,可以对调用条件进行动态配置,随时更新,保证调用条件的准确性,进一步提高了跨域调用的安全性。

作为又一个实施例,所述判断所述父页面是否满足调用条件可以包括:

判断所述父页面是否位于白名单内,和/或所述父页面是否满足校验规则;其中,所述白名单中包括预先配置的允许调用所述iframe页面的页面信息,页面信息例如可以是指页面地址等,白名单针对页面地址或域名进行校验。校验规则可以是对页面地址或域名的格式进行校验,例如校验规则可以是父页面的页面地址未包括过滤关键信息。也即如果父页面的页面地址包括过滤关键信息,不满足校验规则,如果不包括过滤关键信息,满足校验规则。

关键信息可以是指关键词或关键字符等,例如关键字符“../../”,包括关键字符的页面地址会认为不满足校验规则,请求被拦截,客户端即不会显示iframe页面。

白名单中的页面信息可以为页面地址中的域名信息,例如“.google.com”“.alipay.com”“.taobao.com”等。如果父页面的页面信息不在白名单内,则请求被拦截,客户端即不会显示iframe页面。

其中,判断所述父页面是否位于白名单内,和/或所述父页面是否满足校验规则可以包括以下几种情况:

判断所述父页面是否位于白名单内,或者所述父页面是否满足校验规则,可以优先判断父页面是否位于白名单内,如果所述父页面不位于白名单内时,再判断所述父页面是否满足校验规则;

或者,

判断所述父页面是否位于白名单内以及所述父页面是否满足校验规则。

因此服务端指示客户端显示所述iframe页面可以是在所述父页面位于白名单内、所述父页面满足校验规则或者所述父页面位于白名单内且满足校验规则。

服务端指示客户端不显示所述iframe页面可以是在所述父页面不位于白名单内且不满足校验规则或者所述父页面不满足位于白名单以及校验规则中的一个。

其中,调用条件可以预先配置,服务端可以接收用户的配置请求,进行调用条件的配置以及更新。

也即调用条件可以动态配置,可以根据实际情况或者风险情况进行更新,进一步提高了跨域调用的安全性。

其中,根据所述iframe页面显示请求,确定调用所述iframe页面的父页面,可以从所述iframe页面显示请求中的referer信息获得。

referer是header(标头)的一部分,当客户端向服务端发送请求的时候,一般会携带referer,告知服务端请求是从哪个页面链接过来的,因此通过referer可以获知iframe页面的父页面。

标头(header)是服务端与客户端基于http协议传输时送出的字符串。

其中,指示客户端显示所述iframe页面,也即允许在父页面中通过iframe创建的iframe框架中嵌入iframe页面。

指示客户端不显示所述iframe页面可以包括:

指示客户端拒绝显示所述iframe页面;或者指示客户端显示错误提示信息。

如图2~图4所示的页面显示示意图中,图2为在父页面201中嵌入了iframe框架202,显示登录提示信息,通过填写账号以及密码等登录信息,执行登录操作,即触发向服务端发送iframe页面显示请求。

图3为服务端指示客户端拒绝显示所述iframe页面时的显示示意图,在父页面201的iframe框架中可以显示空白内容301。

图4为服务端指示客户端显示错误提示信息,在父页面201的iframe框架中可以显示错误提示信息页面401。

其中,指示客户端显示或拒绝显示iframe页面,可以通过服务端对客户端的响应进行设置,通过设置响应头中的x-frame-options,以指示客户端 显示或拒绝显示所述iframe页面。

x-frame-options有三个值:

deny,任何页面都不能被嵌入到iframe或者frame中。

sameorigin,页面只能被本站页面嵌入到iframe或者frame中。

allow-fromuri,页面自能被指定的uri嵌入到iframe或frame中。

因此,通过设置x-frame-options为deny,即可以使得客户端拒绝显示iframe页面。设置x-frame-options为allow-fromuri,即可以使得客户端可以显示iframe页面。

其中,判断所述父页面是否满足调用条件,可以包括:

从策略中心设备获取预先配置的调用条件;

判断所述父页面是否满足所述调用条件。

其中,所述策略中心设备用于接收配置请求,根据所述配置请求配置或更新所述调用条件。

当然,调用条件可以直接配置在服务端,服务端可以接收配置请求,根据所述配置请求配置或更新所述调用条件。

作为又一个实施例,判断所述父页面是否满足调用条件,可以是:

判断所述父页面是否在白名单内,和/或所述父页面是否满足从策略中心设备获取的校验规则。

也即白名单可以预先配置在服务端,校验规则可以预先配置在策略中心设备,对校验规则的判断需要从策略中心设备获取该校验规则。

另外,服务端在父页面在白名单内且不满足校验规则时,指示客户端拒绝显示iframe页面或者指示客户端显示错误提示信息,可以是从策略中心设备获取配置策略,按照所述配置策略,指示客户端拒绝显示iframe页面或者指示客户端显示错误提示信息。也即指示客户端拒绝显示iframe页面或者指示客户端显示错误提示信息的处理方式可以预先配置在策略中心设备,当然 也可以预先配置在服务端。

此外,作为又一个实施例,在判断所父页面不满足调用条件之后,所述方法还包括:

判断是否连续预设次数接收到所述客户端从所述父页面发起的所述iframe页面显示请求;

在连续预设次数接收到所述客户端从所述父页面发起的所述iframe页面显示请求时,根据所述父页面的页面信息更新所述调用条件。

也即从如果不满足调用条件的父页面多次发起iframe页面显示请求时,可以认为父页面对应站点为恶意站点,根据父页面的页面信息可以更新所述调用条件,例如可以从父页面的页面信息中提取过滤关键信息,根据提取过滤关键信息更新校验规则等。

图5为本申请实施例提供的一种页面显示装置一个实施例的结构示意图,本实施例所述装置配置在服务端中,该装置可以包括:

请求接收模块501,用于接收客户端发送的iframe页面显示请求;

页面确定模块502,用于根据所述iframe页面显示请求,确定调用所述iframe页面的父页面;

请求判断模块503,用于判断所述父页面是否满足调用条件;

显示触发模块504,用于在所述iframe页面嵌套的父页面满足调用条件时,,指示所述客户端显示所述iframe页面;在所述在所述父页面不满足调用条件时,指示所述客户端不显示所述iframe页面。

在本申请实施例中,由服务端判断调用iframe页面的父页面是否满足调用条件,在满足调用条件时,再指示客户端显示iframe页面,如果不满足调用条件,即指示客户端不显示iframe页面。调用条件可以根据实际情况设置,以避免恶意站点的调用,由于在服务端进行安全性判断,可以避免代码泄露风险,提高了安全性,且在服务端,可以对调用条件进行动态配置,随时更新,保证调用条件的准确性,进一步提高了跨域调用的安全性。

其中,作为又一个实施例,所述请求判断模块503具体用于:

判断所述父页面是否位于白名单内,和/或所述父页面是否满足校验规则。

其中,所述白名单中包括预先配置的允许调用所述iframe页面的页面信息;页面信息例如可以是指页面地址等,白名单针对页面地址或域名进行校验。校验规则可以是对页面地址或域名的格式进行校验,例如校验规则可以是父页面的页面地址未包括过滤关键信息。也即如果父页面的页面地址包括过滤关键信息,不满足校验规则,如果不包括过滤关键信息,满足校验规则。

因此,所述请求判断模块503判断所述父页面是否满足校验规则可以是:

判断所述父页面的页面地址中是否未包括过滤关键信息,如果是,确定所述父页面满足校验规则,如果否,确定所述父页面不满足校验规则。

关键信息可以是指关键词或关键字符等,例如关键字符“../../”,包括关键字符的页面地址会认为不满足校验规则,请求被拦截,客户端即不会显示iframe页面。

其中,调用条件可以预先配置,服务端可以接收用户的配置请求,进行调用条件的配置以及更新。

也即调用条件可以动态配置,可以根据实际情况或者风险情况进行更新,进一步提高了跨域调用的安全性。

其中,页面确定模块502根据所述iframe页面显示请求,确定调用所述iframe页面的父页面,可以从所述iframe页面显示请求中的referer信息获得。

referer是header(标头)的一部分,当客户端向服务端发送请求的时候,一般会携带referer,告知服务端请求是从哪个页面链接过来的,因此通过referer可以获知iframe页面的父页面。

标头(header)是服务端与客户端基于http协议传输时送出的字 符串。

其中,所述显示触发模块504指示客户端不显示所述iframe页面可以包括:

指示客户端拒绝显示所述iframe页面;或者指示客户端显示错误提示信息。

指示客户端显示或拒绝显示iframe页面,可以通过服务端对客户端的响应进行设置,通过设置响应头中的x-frame-options,以指示客户端显示或拒绝显示所述iframe页面。

x-frame-options有三个值:

deny,任何页面都不能被嵌入到iframe或者frame中。

sameorigin,页面只能被本站页面嵌入到iframe或者frame中。

allow-fromuri,页面自能被指定的uri嵌入到iframe或frame中。

因此,通过设置x-frame-options为deny,即可以使得客户端拒绝显示iframe页面。设置x-frame-options为allow-fromuri,即可以使得客户端可以显示iframe页面。

作为又一个实施例,所述请求判断模块503可以包括:

获取单元,用于从策略中心设备获取预先配置的调用条件;所述策略中心设备用于接收配置请求,根据所述配置请求配置或更新所述调用条件;

判断单元,用于判断所述父页面是否满足所述调用条件。

当然,调用条件可以直接配置在服务端,服务端可以接收配置请求,根据所述配置请求配置或更新所述调用条件。

作为又一个实施例,所述请求判断模块503可以是:

判断所述父页面是否在白名单内,和/或所述父页面是否满足从策略中心设备获取的校验规则。

也即白名单可以预先配置在服务端,校验规则可以预先配置在策略中心设备,对校验规则的判断需要从策略中心设备获取该校验规则。

作为又一个实施例,如图6所示,所述装置还可以包括:

异常判断模块505,用于判断是否连续接收到所述客户端从所述父页面发起的所述iframe页面显示请求;

配置更新模块506,用于在所述异常判断模块结果为是时,根据所述父页面的页面信息更新所述调用条件。

如果不满足调用条件的父页面多次发起iframe页面显示请求时,可以认为父页面对应站点为恶意站点,根据父页面的页面信息可以更新所述调用条件,例如可以从父页面的页面信息中提取过滤关键信息,根据提取过滤关键信息更新校验规则等。

在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

如在说明书及权利要求当中使用了某些词汇来指称特定组件。本领域技 术人员应可理解,硬件制造商可能会用不同名词来称呼同一个组件。本说明书及权利要求并不以名称的差异来作为区分组件的方式,而是以组件在功能上的差异来作为区分的准则。如在通篇说明书及权利要求当中所提及的“包含”为一开放式用语,故应解释成“包含但不限定于”。“大致”是指在可接收的误差范围内,本领域技术人员能够在一定误差范围内解决所述技术问题,基本达到所述技术效果。此外,“耦接”一词在此包含任何直接及间接的电性耦接手段。因此,若文中描述一第一装置耦接于一第二装置,则代表所述第一装置可直接电性耦接于所述第二装置,或通过其他装置或耦接手段间接地电性耦接至所述第二装置。说明书后续描述为实施本申请的较佳实施方式,然所述描述乃以说明本申请的一般原则为目的,并非用以限定本申请的范围。本申请的保护范围当视所附权利要求所界定者为准。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。

上述说明示出并描述了本申请的若干优选实施例,但如前所述,应当理解本申请并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述申请构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本申请的精神和范围,则都应在本申请所附权利要求的保护范围内。

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