文件对象模型元素的访问控制方法及客户端.pdf

上传人:奻奴 文档编号:1568904 上传时间:2018-06-25 格式:PDF 页数:10 大小:394.64KB
返回 下载 相关 举报
摘要
申请专利号:

CN201110389234.6

申请日:

2011.11.30

公开号:

CN103136252A

公开日:

2013.06.05

当前法律状态:

驳回

有效性:

无权

法律详情:

发明专利申请公布后的驳回IPC(主分类):G06F 17/30申请公布日:20130605|||实质审查的生效IPC(主分类):G06F 17/30申请日:20111130|||公开

IPC分类号:

G06F17/30

主分类号:

G06F17/30

申请人:

腾讯科技(深圳)有限公司

发明人:

黄奎; 常平; 郭学亨

地址:

518044 广东省深圳市福田区振兴路赛格科技园2栋东403室

优先权:

专利代理机构:

北京德琦知识产权代理有限公司 11018

代理人:

牛峥;王丽琴

PDF下载: PDF下载
内容摘要

本发明提供了文件对象模型DOM元素的访问控制方法及客户端,其中,该方法包括:接收关于指定DOM元素的访问请求;从访问请求中析取出域名;判断析取出的域名对指定DOM元素是否有访问权限,如果有,则允许对指定DOM元素的访问,否则,不允许对指定DOM元素的访问。本发明方案能够基于域名对DOM元素的访问进行精确控制。

权利要求书

权利要求书一种文件对象模型DOM元素的访问控制方法,其特征在于,该方法包括:
接收关于指定DOM元素的访问请求;
从访问请求中析取出域名;
判断析取出的域名对指定DOM元素是否有访问权限,如果有,则允许对指定DOM元素的访问,否则,不允许对指定DOM元素的访问。
如权利要求1所述的方法,其特征在于,所述判断析取出的域名对指定DOM元素是否有访问权限包括:
从域策略管理类中查询出与指定DOM元素对应的域名,判断析取出的域名是否包含在查询出的域名中,如果是,则确定析取出的域名对指定DOM元素有访问权限,否则,确定析取出的域名对指定DOM元素没有访问权限。
如权利要求1所述的方法,其特征在于,所述判断析取出的域名对指定DOM元素是否有访问权限包括:
判断析取出的域名指示的是第三方web页面还是本地应用平台,如果是第三方web页面,则确定出析取出的域名对指定DOM元素没有访问权限;如果是本地应用平台,则确定析取出的域名对指定DOM元素有访问权限。
如权利要求1所述的方法,其特征在于,所述接收关于指定DOM元素的访问请求之后,该方法还包括:
判断虚函数表中的访问函数地址是否被修改为接管函数地址,如果是,则执行所述从访问请求中析取出域名的步骤;否则,允许对指定DOM元素的访问。
如权利要求1至4中任一项所述的方法,其特征在于,所述指定DOM元素为内置对象中的DOM元素,或者为自定义对象中的DOM元素。
一种客户端,其特征在于,该客户端包括访问请求处理单元、析取单元和权限判断单元;
所述访问请求处理单元,用于接收关于指定DOM元素的访问请求;
所述析取单元,用于从访问请求中析取出域名;
所述权限判断单元,用于判断析取出的域名对指定DOM元素是否有访问权限,如果有,则允许对指定DOM元素的访问,否则,不允许对指定DOM元素的访问。
如权利要求6所述的客户端,其特征在于,所述权限判断单元包括存储子单元和第一判断子单元;
所述存储子单元,用于存储域策略管理类,所述域策略管理类包含DOM元素与允许访问该DOM元素的域名之间的对应关系;
所述第一判断子单元,用于从域策略管理类中查询出与指定DOM元素对应的域名,判断析取出的域名是否包含在查询出的域名中,如果是,则确定析取出的域名对指定DOM元素有访问权限,否则,确定析取出的域名对指定DOM元素没有访问权限。
如权利要求6所述的客户端,其特征在于,所述权限判断单元包括第二判断子单元,用于断析取出的域名指示的是第三方web页面还是本地应用平台,如果是第三方web页面,则确定出析取出的域名对指定DOM元素没有访问权限;如果是本地应用平台,则确定析取出的域名对指定DOM元素有访问权限。
如权利要求6所述的客户端,其特征在于,所述访问请求处理单元包括访问请求接收子单元和地址判断子单元;
所述访问请求接收子单元,用于接收关于指定DOM元素的访问请求,将访问请求传送给所述地址判断子单元;
所述地址判断子单元,用于判断虚函数表中的访问函数地址是否被修改为接管函数地址,如果是,则将访问请求发送给所述析取单元;否则,允许对指定DOM元素的访问。
如权利要求6至9中任一项所述的客户端,其特征在于,所述指定DOM元素为内置对象中的DOM元素,或者为自定义对象中的DOM元素。

说明书

说明书文件对象模型元素的访问控制方法及客户端
技术领域
本发明涉及web应用技术,尤其设计文件对象模型(DOM,DocumentObject Model)元素的访问控制方法及客户端。
背景技术
在web应用平台开发中,需要在本地应用平台上提供一个运行第三方web页面的容器,在容器里嵌入浏览器内核,在浏览器内核上运行第三方web页面,这样,使运行在本地应用平台上的web应用看起来像本地应用一样;并且,本地应用平台还提供一些本地应用接口,供运行在本地应用平台上的第三方web页面使用。本地应用平台为第三方页面提供的这种应用称为web应用,也常表示为WebApp。
为了给第三方web页面提供更多的本地应用接口,需要扩展浏览器内核能力,目前,有很多扩展浏览器内核能力的方案,其中,比较平滑的一种方法是为第三方web页面提供更多能访问的DOM元素。
DOM元素常通过浏览器脚本,如javascrip访问,DOM元素包含了各种不同的浏览器行为,如添加页面上的元素、移除页面上的元素、改变页面上的元素、重排页面上的元素等浏览器行为。如果本地应用平台允许某第三方web页面对DOM元素进行访问,则第三方web页面便可自行添加页面上的元素、移除页面上的元素、改变页面上的元素、重排页面上的元素等。
举例说明,在第三方页面的开发过程中,如果在第三方页面嵌入了关于指定DOM元素的访问请求,该指定DOM元素为重排页面上的元素;那么在本地平台上运行该第三方页面后,本地平台将接收第三方页面发送的所述访问请求,若允许访问,第三方页面便可自行重排页面上的元素;这里假设第三方页面为土豆网页面,若允许访问,第三方页面便可自行将页面上的“电影”、“连续剧”、“新闻”等栏目位置进行重新排列。
参见图1,为web应用的页面构架示意图实例。用户启动web应用的客户端,然后根据需要打开第三方web页面。图1中,在本地的web应用平台上运行的第三方web页面包括三个嵌入框架(iframe),为child1、child2和child3;分别对应的统一资源定位器(URL,Uniform Resource Locator)地址为:www.child1.com/path1、www.Child2.com/path2和www.child3.com/path3;这三个嵌入框架分别对应的域名为www.child1.com、www.Child2.com和www.child3.com;图中的Host指示的是本地应用平台的web页面,其URL地址为www.host.com/path,域名为www.host.com。
这里,对域进行简要说明。域是一个网络概念,指的是一个网络单位,是一个网络单位与其它网络单位之间的界限,可以将域理解为一组有组织管理和访问控制的计算机的集合。比如www.sina.com和www.sohu.com,就是两个不同的域名。
web应用平台上运行的第三方页面一般包括对多个嵌入框架,每个嵌入框架可能属于不同的拥有者,每个拥有者对应不同的域名,而各拥有者的权限是不一样的。在实际应用中,常希望对拥有者的权限进行限制,只允许指定的某一拥有者对某些DOM元素进行访问,而不允许其他拥有者对所述的某些这些DOM元素进行访问。例如,不允许图1中child1嵌入框架对DOM元素“window.top.location”进行访问,window.top.location表示顶层窗口设置,图1中的顶层框架为Hsot嵌入框架,若允许child1嵌入框架对该DOM元素进行访问,child1的页面URL地址将更改为host的URL地址,导致child1嵌入框架覆盖Hsot嵌入框架,这是不允许的。
然而,现有技术中很少涉及对DOM元素访问的限制,如果不对访问进行限制,本地应用平台接收关于某DOM元素的访问请求后,无论该访问请求是来自自身应用平台的还是来自于某个第三方web页面的,都将允许对某DOM元素的访问。
目前,涉及的DOM元访问控制方式多为网络防火墙方式,该方式把web页面应用中所有可疑的访问全都过滤掉,属于粗粒度的解决方案,不能根据需要精确地对DOM元素的访问进行限制。
发明内容
本发明提供了一种DOM元素的访问控制方法,该方法能够基于域名对DOM元素的访问进行精确控制。
一种DOM元素的访问控制方法,该方法包括:
接收关于指定DOM元素的访问请求;
从访问请求中析取出域名;
判断析取出的域名对指定DOM元素是否有访问权限,如果有,则允许对指定DOM元素的访问,否则,不允许对指定DOM元素的访问。
本发明提供了一种客户端,该客户端能够基于域名对DOM元素的访问进行精确控制。
一种客户端,该客户端包括访问请求处理单元、析取单元和权限判断单元;
所述访问请求处理单元,用于接收关于指定DOM元素的访问请求;
所述析取单元,用于从访问请求中析取出域名;
所述权限判断单元,用于判断析取出的域名对指定DOM元素是否有访问权限,如果有,则允许对指定DOM元素的访问,否则,不允许对指定DOM元素的访问。
从上述方案可以看出,本发明中接收关于指定DOM元素的访问请求后,从访问请求中析取出域名;根据析取出的域名判断是否允许对指定DOM元素的访问。从而,基于域名实现了对DOM元素的访问进行精确控制。
附图说明
图1为现有技术web应用的页面构架示意图实例;
图2为本发明DOM元素的访问控制方法示意性流程图;
图3为本发明客户端的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明进一步详细说明。
本发明提出了基于域名对DOM元素的访问进行控制的方案,从而实现了web应用中对DOM元素访问的精确控制。在本地web应用平台上运行的第三方页面一般包括对多个嵌入框架,每个嵌入框架可能属于不同的拥有者,每个拥有者对应不同的域名,而各拥有者的权限是不一样的。在实际应用中,常希望对拥有者的权限进行限制,由于每个拥有者对应不同域名,本发明便采用域名来区分各嵌入框架,进而区分拥有者。参见图2,为本发明DOM元素的访问控制方法示意性流程图,该方法包括以下步骤:
步骤201,接收关于指定DOM元素的访问请求。
启动web应用的客户端,然后在本地应用平台上打开第三方web页面。本地应用平台接收关于指定DOM元素的访问请求,该访问请求可能来自本地应用平台,也可能来自第三方web页面;也就是,可以由本地web页面发起关于指定DOM元素的访问请求,也可以由内嵌在该web页面的内嵌框架发起关于指定DOM元素的访问请求。
web应用平台开发中,需要在本地应用平台上提供一个运行第三方web页面的容器,在容器里嵌入浏览器内核,在浏览器内核上运行第三方web页面,这样,使运行在本地应用平台上的web应用看起来像本地应用一样。并且,本地应用平台还提供了可供第三方web页面访问的DOM元素,包括内置对象中的DOM元素,还包括自定义对象中的DOM元素。内置对象中的DOM元素为本地应用平台提供的原始DOM元素,自定义对象中的DOM元素为根据需要扩展的DOM元素,自定义对象可通过浏览器内核支持的某种机制挂接到内置对象上。现在的浏览器内核,如IE、Chrome、Firefox等都提供了这种挂接机制。
步骤202,从访问请求中析取出域名。
访问请求中包含了发送该访问请求的页面的域名,对访问请求进行解析,并可提取出域名。
步骤203,判断析取出的域名对指定DOM元素是否有访问权限,如果有,则允许对指定DOM元素的访问,否则,不允许对指定DOM元素的访问。
析取出域名后,可根据实际需要确定对哪些域名的访问权限进行限制,下面例举两种方式:
方式一:
从域策略管理类中查询出与指定DOM元素对应的域名,判断析取出的域名是否包含在查询出的域名中,如果是,则确定析取出的域名对指定DOM元素有访问权限,否则,确定析取出的域名对指定DOM元素没有访问权限。
方式二:
判断析取出的域名指示的是第三方web页面还是本地应用平台,如果是第三方web页面,则确定出析取出的域名对指定DOM元素没有访问权限;如果是本地应用平台,则确定析取出的域名对指定DOM元素有访问权限。
允许对指定DOM元素的访问后,便可按照现有方式在浏览器内核里运行操纵指定DOM元素的脚本。脚本是由脚本引擎解释的,运行脚本的过程中,当脚本引擎在解释某一DOM元素符号时,首先会到内置对象列表中去查找于该符号,如果找到则返回给脚本调用者,查找到相应的符号便完成了相应符号的解释;如果在内置对象中没有找到,则去自定义对象列表中去查找,如果找到则返回给脚本调用者,如果都没有找到,则报错。这样依次逐个递归解释各符号,直到所有的符号都解释完毕。
本发明方案可具体通过接口钩子(API HOOK)协助实现,HOOK操作在初始化WebApp时进行,当监视到有关于指定DOM元素的访问请求时,将进入自定义的API HOOK函数,在该函数中能析取域名,进而可根据域策略控制本次访问。下面对运用API HOOK进行DOM元素访问控制的过程进行说明。首先,在web页面或者内嵌在该web页面中的内联框架(iframe)中发起对某一DOM元素的访问请求;脚本引擎解释要访问的DOM元素符号,当脚本引擎去寻找DOM元素所对应的自动化对象时(包括内置对象和自定义对象),会进入自定义的HOOK函数,在该函数中析取出域名;然后,根据具体应用需求,确定是否对该域名进行限制,如果该域名对该DOM元素有访问权限则返回DOM元素所对应的自动化对象到脚本环境,如果没有则返回空或报错。这样,通过APIHOOK函数,便可接管脚本对内置对象或自定义对象的访问过程,从而实现对DOM元素的访问控制。
当脚本引擎去寻找DOM元素所对应的自动化对象时,会进入自定义的HOOK函数,具体地,在底层实现时,API HOOK可采用修改虚函数表的方式实现。通过修改虚函数表的方式实现API HOOK,是本领域技术人员容易实现的,这里不赘述。下面对C++中虚函数和虚函数表进行简要说明。
虚函数:C++中,虚函数声明一般在函数签名前加virtual,虚函数的作用是实现动态联编,也就是在程序的运行阶段动态地选择合适的成员函数,在定义了虚函数后,可以在基类的派生类中对虚函数重新定义,在派生类中重新定义的函数应与虚函数具有相同的形参个数和形参类型。如果在派生类中没有对虚函数重新定义,则它继承其基类的虚函数。
虚函数表:C++中,虚函数的实现一般是通过虚函数表。类的虚函数表是一块连续的内存,每个内存单元中记录一个跳转指令的地址。编译器会为每个有虚函数的类创建一个虚函数表,该虚函数表将被该类的所有对象共享。类的每个虚成员占据虚函数表中一行。如果类中有N个虚函数表,那么类将有N*4字节的大小,采用虚函数表主要是解决了继承、覆盖的问题,保证其真实反应实际的函数。
在C++对象模型内存布局里面,如果类继承抽象类(里面含有虚函数),则对象最前面一个内存地址被初始化虚函数表指针,虚函数表中保存着该对象所有的虚拟函数执行地址。由于所要访问的自动化对象都继承许多抽象基类(又称为接口),即都是以接口指针的形式访问。通过接口指针可以确定该接口所对应的虚函数表中的相应条目地址,然后更换虚函数表相应条目地址为接管函数地址,并保存被替换条目地址,这样可以从接管函数继续原来的过程。接管函数应该与被替换函数具有相同的函数签名。
如果不修改虚函数表,本地应用平台接收关于某DOM元素的访问请求后,将按照现有的方式直接访问该DOM元素。本地应用平台接收关于某DOM元素的访问请求后,如果判断出虚函数表中相应条目地址被修改为接管函数地址,将采用本发明方案从访问请求中析取出域名,判断析取出的域名对该DOM元素是否有访问权限;所述相应条目地址对应的函数可使后续流程按现有方式进行处理,即按直接访问该DOM元素方式进行处理,这里将所述相应条目地址称为访问函数地址;所述接管函数地址对应的函数可使后续流程按照本发明方式进行处理,也就是,析取出域名,并根据具体应用需求,确定是否对该域名进行限制。
参见图3,为本发明提供的客户端结构示意图,该客户端包括访问请求处理单元、析取单元和权限判断单元;
所述访问请求处理单元,用于接收关于指定DOM元素的访问请求;
所述析取单元,用于从访问请求中析取出域名;
所述权限判断单元,用于判断析取出的域名对指定DOM元素是否有访问权限,如果有,则允许对指定DOM元素的访问,否则,不允许对指定DOM元素的访问。
可选地,所述权限判断单元包括存储子单元和第一判断子单元;
所述存储子单元,用于存储域策略管理类,所述域策略管理类包含DOM元素与允许访问该DOM元素的域名之间的对应关系;
所述第一判断子单元,用于从域策略管理类中查询出与指定DOM元素对应的域名,判断析取出的域名是否包含在查询出的域名中,如果是,则确定析取出的域名对指定DOM元素有访问权限,否则,确定析取出的域名对指定DOM元素没有访问权限。
可选地,所述权限判断单元包括第二判断子单元,用于断析取出的域名指示的是第三方web页面还是本地应用平台,如果是第三方web页面,则确定出析取出的域名对指定DOM元素没有访问权限;如果是本地应用平台,则确定析取出的域名对指定DOM元素有访问权限。
可选地,所述访问请求处理单元包括访问请求接收子单元和地址判断子单元;
所述访问请求接收子单元,用于接收关于指定DOM元素的访问请求,将访问请求传送给所述地址判断子单元;
所述地址判断子单元,用于判断虚函数表中的访问函数地址是否被修改为接管函数地址,如果是,则将访问请求发送给所述析取单元;否则,允许对指定DOM元素的访问。
所述指定DOM元素为内置对象中的DOM元素,或者为自定义对象中的DOM元素。
所述客户端例如为Q+应用客户端,在Q+应用平台上运行的第三方web页面例如为土豆网页面。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

文件对象模型元素的访问控制方法及客户端.pdf_第1页
第1页 / 共10页
文件对象模型元素的访问控制方法及客户端.pdf_第2页
第2页 / 共10页
文件对象模型元素的访问控制方法及客户端.pdf_第3页
第3页 / 共10页
点击查看更多>>
资源描述

《文件对象模型元素的访问控制方法及客户端.pdf》由会员分享,可在线阅读,更多相关《文件对象模型元素的访问控制方法及客户端.pdf(10页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 CN 103136252 A(43)申请公布日 2013.06.05CN103136252A*CN103136252A*(21)申请号 201110389234.6(22)申请日 2011.11.30G06F 17/30(2006.01)(71)申请人腾讯科技(深圳)有限公司地址 518044 广东省深圳市福田区振兴路赛格科技园2栋东403室(72)发明人黄奎 常平 郭学亨(74)专利代理机构北京德琦知识产权代理有限公司 11018代理人牛峥 王丽琴(54) 发明名称文件对象模型元素的访问控制方法及客户端(57) 摘要本发明提供了文件对象模型DOM元素的访问控制方法及客户端。

2、,其中,该方法包括:接收关于指定DOM元素的访问请求;从访问请求中析取出域名;判断析取出的域名对指定DOM元素是否有访问权限,如果有,则允许对指定DOM元素的访问,否则,不允许对指定DOM元素的访问。本发明方案能够基于域名对DOM元素的访问进行精确控制。(51)Int.Cl.权利要求书2页 说明书5页 附图2页(19)中华人民共和国国家知识产权局(12)发明专利申请权利要求书2页 说明书5页 附图2页(10)申请公布号 CN 103136252 ACN 103136252 A1/2页21.一种文件对象模型DOM元素的访问控制方法,其特征在于,该方法包括:接收关于指定DOM元素的访问请求;从访问。

3、请求中析取出域名;判断析取出的域名对指定DOM元素是否有访问权限,如果有,则允许对指定DOM元素的访问,否则,不允许对指定DOM元素的访问。2.如权利要求1所述的方法,其特征在于,所述判断析取出的域名对指定DOM元素是否有访问权限包括:从域策略管理类中查询出与指定DOM元素对应的域名,判断析取出的域名是否包含在查询出的域名中,如果是,则确定析取出的域名对指定DOM元素有访问权限,否则,确定析取出的域名对指定DOM元素没有访问权限。3.如权利要求1所述的方法,其特征在于,所述判断析取出的域名对指定DOM元素是否有访问权限包括:判断析取出的域名指示的是第三方web页面还是本地应用平台,如果是第三方。

4、web页面,则确定出析取出的域名对指定DOM元素没有访问权限;如果是本地应用平台,则确定析取出的域名对指定DOM元素有访问权限。4.如权利要求1所述的方法,其特征在于,所述接收关于指定DOM元素的访问请求之后,该方法还包括:判断虚函数表中的访问函数地址是否被修改为接管函数地址,如果是,则执行所述从访问请求中析取出域名的步骤;否则,允许对指定DOM元素的访问。5.如权利要求1至4中任一项所述的方法,其特征在于,所述指定DOM元素为内置对象中的DOM元素,或者为自定义对象中的DOM元素。6.一种客户端,其特征在于,该客户端包括访问请求处理单元、析取单元和权限判断单元;所述访问请求处理单元,用于接收。

5、关于指定DOM元素的访问请求;所述析取单元,用于从访问请求中析取出域名;所述权限判断单元,用于判断析取出的域名对指定DOM元素是否有访问权限,如果有,则允许对指定DOM元素的访问,否则,不允许对指定DOM元素的访问。7.如权利要求6所述的客户端,其特征在于,所述权限判断单元包括存储子单元和第一判断子单元;所述存储子单元,用于存储域策略管理类,所述域策略管理类包含DOM元素与允许访问该DOM元素的域名之间的对应关系;所述第一判断子单元,用于从域策略管理类中查询出与指定DOM元素对应的域名,判断析取出的域名是否包含在查询出的域名中,如果是,则确定析取出的域名对指定DOM元素有访问权限,否则,确定析。

6、取出的域名对指定DOM元素没有访问权限。8.如权利要求6所述的客户端,其特征在于,所述权限判断单元包括第二判断子单元,用于断析取出的域名指示的是第三方web页面还是本地应用平台,如果是第三方web页面,则确定出析取出的域名对指定DOM元素没有访问权限;如果是本地应用平台,则确定析取出的域名对指定DOM元素有访问权限。9.如权利要求6所述的客户端,其特征在于,所述访问请求处理单元包括访问请求接权 利 要 求 书CN 103136252 A2/2页3收子单元和地址判断子单元;所述访问请求接收子单元,用于接收关于指定DOM元素的访问请求,将访问请求传送给所述地址判断子单元;所述地址判断子单元,用于判。

7、断虚函数表中的访问函数地址是否被修改为接管函数地址,如果是,则将访问请求发送给所述析取单元;否则,允许对指定DOM元素的访问。10.如权利要求6至9中任一项所述的客户端,其特征在于,所述指定DOM元素为内置对象中的DOM元素,或者为自定义对象中的DOM元素。权 利 要 求 书CN 103136252 A1/5页4文件对象模型元素的访问控制方法及客户端技术领域0001 本发明涉及web应用技术,尤其设计文件对象模型(DOM,DocumentObject Model)元素的访问控制方法及客户端。背景技术0002 在web应用平台开发中,需要在本地应用平台上提供一个运行第三方web页面的容器,在容器。

8、里嵌入浏览器内核,在浏览器内核上运行第三方web页面,这样,使运行在本地应用平台上的web应用看起来像本地应用一样;并且,本地应用平台还提供一些本地应用接口,供运行在本地应用平台上的第三方web页面使用。本地应用平台为第三方页面提供的这种应用称为web应用,也常表示为WebApp。0003 为了给第三方web页面提供更多的本地应用接口,需要扩展浏览器内核能力,目前,有很多扩展浏览器内核能力的方案,其中,比较平滑的一种方法是为第三方web页面提供更多能访问的DOM元素。0004 DOM元素常通过浏览器脚本,如javascrip访问,DOM元素包含了各种不同的浏览器行为,如添加页面上的元素、移除页。

9、面上的元素、改变页面上的元素、重排页面上的元素等浏览器行为。如果本地应用平台允许某第三方web页面对DOM元素进行访问,则第三方web页面便可自行添加页面上的元素、移除页面上的元素、改变页面上的元素、重排页面上的元素等。0005 举例说明,在第三方页面的开发过程中,如果在第三方页面嵌入了关于指定DOM元素的访问请求,该指定DOM元素为重排页面上的元素;那么在本地平台上运行该第三方页面后,本地平台将接收第三方页面发送的所述访问请求,若允许访问,第三方页面便可自行重排页面上的元素;这里假设第三方页面为土豆网页面,若允许访问,第三方页面便可自行将页面上的“电影”、“连续剧”、“新闻”等栏目位置进行重。

10、新排列。0006 参见图1,为web应用的页面构架示意图实例。用户启动web应用的客户端,然后根据需要打开第三方web页面。图1中,在本地的web应用平台上运行的第三方web页面包括三个嵌入框架(iframe),为child1、child2和child3;分别对应的统一资源定位器(URL,Uniform Resource Locator)地址为: 这里,对域进行简要说明。域是一个网络概念,指的是一个网络单位,是一个网络单位与其它网络单位之间的界限,可以将域理解为一组有组织管理和访问控制的计算机的集合。比如和,就是两个不同的域名。0008 web应用平台上运行的第三方页面一般包括对多个嵌入框架,。

11、每个嵌入框架可能属于不同的拥有者,每个拥有者对应不同的域名,而各拥有者的权限是不一样的。在实际应用中,常希望对拥有者的权限进行限制,只允许指定的某一拥有者对某些DOM元素进行访说 明 书CN 103136252 A2/5页5问,而不允许其他拥有者对所述的某些这些DOM元素进行访问。例如,不允许图1中child1嵌入框架对DOM元素“window.top.location”进行访问,window.top.location表示顶层窗口设置,图1中的顶层框架为Hsot嵌入框架,若允许child1嵌入框架对该DOM元素进行访问,child1的页面URL地址将更改为host的URL地址,导致child1。

12、嵌入框架覆盖Hsot嵌入框架,这是不允许的。0009 然而,现有技术中很少涉及对DOM元素访问的限制,如果不对访问进行限制,本地应用平台接收关于某DOM元素的访问请求后,无论该访问请求是来自自身应用平台的还是来自于某个第三方web页面的,都将允许对某DOM元素的访问。0010 目前,涉及的DOM元访问控制方式多为网络防火墙方式,该方式把web页面应用中所有可疑的访问全都过滤掉,属于粗粒度的解决方案,不能根据需要精确地对DOM元素的访问进行限制。发明内容0011 本发明提供了一种DOM元素的访问控制方法,该方法能够基于域名对DOM元素的访问进行精确控制。0012 一种DOM元素的访问控制方法,该。

13、方法包括:0013 接收关于指定DOM元素的访问请求;0014 从访问请求中析取出域名;0015 判断析取出的域名对指定DOM元素是否有访问权限,如果有,则允许对指定DOM元素的访问,否则,不允许对指定DOM元素的访问。0016 本发明提供了一种客户端,该客户端能够基于域名对DOM元素的访问进行精确控制。0017 一种客户端,该客户端包括访问请求处理单元、析取单元和权限判断单元;0018 所述访问请求处理单元,用于接收关于指定DOM元素的访问请求;0019 所述析取单元,用于从访问请求中析取出域名;0020 所述权限判断单元,用于判断析取出的域名对指定DOM元素是否有访问权限,如果有,则允许对。

14、指定DOM元素的访问,否则,不允许对指定DOM元素的访问。0021 从上述方案可以看出,本发明中接收关于指定DOM元素的访问请求后,从访问请求中析取出域名;根据析取出的域名判断是否允许对指定DOM元素的访问。从而,基于域名实现了对DOM元素的访问进行精确控制。附图说明0022 图1为现有技术web应用的页面构架示意图实例;0023 图2为本发明DOM元素的访问控制方法示意性流程图;0024 图3为本发明客户端的结构示意图。具体实施方式0025 为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明进一步详细说明。说 明 书CN 103136252 A3/5页60026 本。

15、发明提出了基于域名对DOM元素的访问进行控制的方案,从而实现了web应用中对DOM元素访问的精确控制。在本地web应用平台上运行的第三方页面一般包括对多个嵌入框架,每个嵌入框架可能属于不同的拥有者,每个拥有者对应不同的域名,而各拥有者的权限是不一样的。在实际应用中,常希望对拥有者的权限进行限制,由于每个拥有者对应不同域名,本发明便采用域名来区分各嵌入框架,进而区分拥有者。参见图2,为本发明DOM元素的访问控制方法示意性流程图,该方法包括以下步骤:0027 步骤201,接收关于指定DOM元素的访问请求。0028 启动web应用的客户端,然后在本地应用平台上打开第三方web页面。本地应用平台接收关。

16、于指定DOM元素的访问请求,该访问请求可能来自本地应用平台,也可能来自第三方web页面;也就是,可以由本地web页面发起关于指定DOM元素的访问请求,也可以由内嵌在该web页面的内嵌框架发起关于指定DOM元素的访问请求。0029 web应用平台开发中,需要在本地应用平台上提供一个运行第三方web页面的容器,在容器里嵌入浏览器内核,在浏览器内核上运行第三方web页面,这样,使运行在本地应用平台上的web应用看起来像本地应用一样。并且,本地应用平台还提供了可供第三方web页面访问的DOM元素,包括内置对象中的DOM元素,还包括自定义对象中的DOM元素。内置对象中的DOM元素为本地应用平台提供的原始。

17、DOM元素,自定义对象中的DOM元素为根据需要扩展的DOM元素,自定义对象可通过浏览器内核支持的某种机制挂接到内置对象上。现在的浏览器内核,如IE、Chrome、Firefox等都提供了这种挂接机制。0030 步骤202,从访问请求中析取出域名。0031 访问请求中包含了发送该访问请求的页面的域名,对访问请求进行解析,并可提取出域名。0032 步骤203,判断析取出的域名对指定DOM元素是否有访问权限,如果有,则允许对指定DOM元素的访问,否则,不允许对指定DOM元素的访问。0033 析取出域名后,可根据实际需要确定对哪些域名的访问权限进行限制,下面例举两种方式:0034 方式一:0035 从。

18、域策略管理类中查询出与指定DOM元素对应的域名,判断析取出的域名是否包含在查询出的域名中,如果是,则确定析取出的域名对指定DOM元素有访问权限,否则,确定析取出的域名对指定DOM元素没有访问权限。0036 方式二:0037 判断析取出的域名指示的是第三方web页面还是本地应用平台,如果是第三方web页面,则确定出析取出的域名对指定DOM元素没有访问权限;如果是本地应用平台,则确定析取出的域名对指定DOM元素有访问权限。0038 允许对指定DOM元素的访问后,便可按照现有方式在浏览器内核里运行操纵指定DOM元素的脚本。脚本是由脚本引擎解释的,运行脚本的过程中,当脚本引擎在解释某一DOM元素符号时。

19、,首先会到内置对象列表中去查找于该符号,如果找到则返回给脚本调用者,查找到相应的符号便完成了相应符号的解释;如果在内置对象中没有找到,则去自定义对象列表中去查找,如果找到则返回给脚本调用者,如果都没有找到,则报错。这样依次逐个递归解释各符号,直到所有的符号都解释完毕。说 明 书CN 103136252 A4/5页70039 本发明方案可具体通过接口钩子(API HOOK)协助实现,HOOK操作在初始化WebApp时进行,当监视到有关于指定DOM元素的访问请求时,将进入自定义的API HOOK函数,在该函数中能析取域名,进而可根据域策略控制本次访问。下面对运用API HOOK进行DOM元素访问控。

20、制的过程进行说明。首先,在web页面或者内嵌在该web页面中的内联框架(iframe)中发起对某一DOM元素的访问请求;脚本引擎解释要访问的DOM元素符号,当脚本引擎去寻找DOM元素所对应的自动化对象时(包括内置对象和自定义对象),会进入自定义的HOOK函数,在该函数中析取出域名;然后,根据具体应用需求,确定是否对该域名进行限制,如果该域名对该DOM元素有访问权限则返回DOM元素所对应的自动化对象到脚本环境,如果没有则返回空或报错。这样,通过APIHOOK函数,便可接管脚本对内置对象或自定义对象的访问过程,从而实现对DOM元素的访问控制。0040 当脚本引擎去寻找DOM元素所对应的自动化对象时。

21、,会进入自定义的HOOK函数,具体地,在底层实现时,API HOOK可采用修改虚函数表的方式实现。通过修改虚函数表的方式实现API HOOK,是本领域技术人员容易实现的,这里不赘述。下面对C+中虚函数和虚函数表进行简要说明。0041 虚函数:C+中,虚函数声明一般在函数签名前加virtual,虚函数的作用是实现动态联编,也就是在程序的运行阶段动态地选择合适的成员函数,在定义了虚函数后,可以在基类的派生类中对虚函数重新定义,在派生类中重新定义的函数应与虚函数具有相同的形参个数和形参类型。如果在派生类中没有对虚函数重新定义,则它继承其基类的虚函数。0042 虚函数表:C+中,虚函数的实现一般是通过。

22、虚函数表。类的虚函数表是一块连续的内存,每个内存单元中记录一个跳转指令的地址。编译器会为每个有虚函数的类创建一个虚函数表,该虚函数表将被该类的所有对象共享。类的每个虚成员占据虚函数表中一行。如果类中有N个虚函数表,那么类将有N*4字节的大小,采用虚函数表主要是解决了继承、覆盖的问题,保证其真实反应实际的函数。0043 在C+对象模型内存布局里面,如果类继承抽象类(里面含有虚函数),则对象最前面一个内存地址被初始化虚函数表指针,虚函数表中保存着该对象所有的虚拟函数执行地址。由于所要访问的自动化对象都继承许多抽象基类(又称为接口),即都是以接口指针的形式访问。通过接口指针可以确定该接口所对应的虚函。

23、数表中的相应条目地址,然后更换虚函数表相应条目地址为接管函数地址,并保存被替换条目地址,这样可以从接管函数继续原来的过程。接管函数应该与被替换函数具有相同的函数签名。0044 如果不修改虚函数表,本地应用平台接收关于某DOM元素的访问请求后,将按照现有的方式直接访问该DOM元素。本地应用平台接收关于某DOM元素的访问请求后,如果判断出虚函数表中相应条目地址被修改为接管函数地址,将采用本发明方案从访问请求中析取出域名,判断析取出的域名对该DOM元素是否有访问权限;所述相应条目地址对应的函数可使后续流程按现有方式进行处理,即按直接访问该DOM元素方式进行处理,这里将所述相应条目地址称为访问函数地址。

24、;所述接管函数地址对应的函数可使后续流程按照本发明方式进行处理,也就是,析取出域名,并根据具体应用需求,确定是否对该域名进行限制。0045 参见图3,为本发明提供的客户端结构示意图,该客户端包括访问请求处理单元、析取单元和权限判断单元;0046 所述访问请求处理单元,用于接收关于指定DOM元素的访问请求;说 明 书CN 103136252 A5/5页80047 所述析取单元,用于从访问请求中析取出域名;0048 所述权限判断单元,用于判断析取出的域名对指定DOM元素是否有访问权限,如果有,则允许对指定DOM元素的访问,否则,不允许对指定DOM元素的访问。0049 可选地,所述权限判断单元包括存。

25、储子单元和第一判断子单元;0050 所述存储子单元,用于存储域策略管理类,所述域策略管理类包含DOM元素与允许访问该DOM元素的域名之间的对应关系;0051 所述第一判断子单元,用于从域策略管理类中查询出与指定DOM元素对应的域名,判断析取出的域名是否包含在查询出的域名中,如果是,则确定析取出的域名对指定DOM元素有访问权限,否则,确定析取出的域名对指定DOM元素没有访问权限。0052 可选地,所述权限判断单元包括第二判断子单元,用于断析取出的域名指示的是第三方web页面还是本地应用平台,如果是第三方web页面,则确定出析取出的域名对指定DOM元素没有访问权限;如果是本地应用平台,则确定析取出。

26、的域名对指定DOM元素有访问权限。0053 可选地,所述访问请求处理单元包括访问请求接收子单元和地址判断子单元;0054 所述访问请求接收子单元,用于接收关于指定DOM元素的访问请求,将访问请求传送给所述地址判断子单元;0055 所述地址判断子单元,用于判断虚函数表中的访问函数地址是否被修改为接管函数地址,如果是,则将访问请求发送给所述析取单元;否则,允许对指定DOM元素的访问。0056 所述指定DOM元素为内置对象中的DOM元素,或者为自定义对象中的DOM元素。0057 所述客户端例如为Q+应用客户端,在Q+应用平台上运行的第三方web页面例如为土豆网页面。0058 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。说 明 书CN 103136252 A1/2页9图1图2说 明 书 附 图CN 103136252 A2/2页10图3说 明 书 附 图CN 103136252 A10。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1