多页面浏览器中数据管理的方法及浏览器

申请号:CN 200810082763
申请日期:2008年3月12日
申请人:腾讯科技(深圳)有限公司

【摘要】
本发明公开了多页面浏览器中数据管理的方法及浏览器。该多页面浏览器中数据管理的方法包括:浏览器判断出当前页面指令为网页本地缓存字段Cookie改写指令,建立Cookie空间,将当前页面的Cookie写入建立的所述Cookie空间。采用本发明方案,当同一网站中后一页面进行改写操作时,前一页面仍然能正常使用,从而,解决了现有技术中存在的Cookie覆盖问题。

【技术领域】
[0001] 本发明涉及数据管理技术,尤其涉及多页面浏览器中数据管理的方法及浏览器。

【背景技术】
[0002] 网页本地缓存字段(Cookie)方法是在客户端储存数据的一种方法,Cookie对应 于域(domain)或者对应于域下的子目录,也就是,Cookie与网站相对应,不同的网站对应 不同的Cookie。与某一网站对应的所有页面共享同一个Cookie,并且,一个网站中不能获 取另一个网站中的Cookie。现有的多页面浏览器都是基于域或域下的子目录的Cookie,在 同一个窗口中能同时打开多个页面。

[0003] 下面对域进行简单说明。域是一个网络概念,指的是一个网络单位,是一个网络单 位与其它网络单位之间的界限。可以将域理解为一组有组织管理和访问控制的计算机的集 合。形象地,如果把市场比作网络,那么一个域就是一家公司。对于不同的域的访问是有限 制的,其他域不能轻易访问本域里的资源,比如www. sina. com和www. sohu. com,就属于两 个不同的域,它们的Cookie是分开的。

[0004] Cookie可以是为辨别客户端身份而储存在客户端上的数据,以判定注册用户是否 已经登录网站;当用户登录网站后,用户得到提示,是否在下一次进入此网站时保留用户信 息以便简化登录手续。Cookie还可以应用于”购物车”之类的处理。下面以”购物车”为例 进行说明,进行购物时,客户端在一段时间内在同一 网站的不同页面中选择不同的商品,因 为对应于同一网站,这些不同页面上选择的不同信息都将写入同一 Cookie,在最后付款时 从该Cookie中提取写入的信息。

[0005] Cookie包括两种, 一种是文件Cookie,这种情况下Cookie保存在客户端,文件 Cookie存在过期时间(e邓ires),当超过设定的过期时间时系统将删除保存的Cookie ; 另一种是进程Cookie,对于这种情况,不将Cookie写入文件,在浏览器关闭以后自动将 Cookie删除。进程Cookie只在当前进程有效存在,关闭进程以后将删除保存的Cookie ;且 进程Cookie保存在内存中,安全性较好。

[0006] 现有的多页面浏览器中,如果在同一个网站同时登录两个用户,后登录的页面的 写入Cookie操作将覆盖前一页面的Cookie,造成前一页面不能正常使用。特别地,对于进 程Cookie,因为多页面浏览器中对于一个网站只有一个进程,后登录的页面的写入Cookie 操作将覆盖前一页面的Cookie。

[0007] 现有的多页面浏览器数据管理方案中不仅存在Cookie覆盖的问题,还存在安全 性问题,例如对于进程Cookie,打开一个网站后,如登录该网站上的某个邮箱,在关闭该邮 箱页面后如果没有关闭该网站的进程,仍然可以再次打开此邮箱中的邮件,这导致了邮箱 的安全性降低。

[0008] 由以上分析可见,现有的多页面浏览器中数据管理方案至少存在Cookie覆盖问 题,在同一网站的后一页面对前一页面进行改写操作时,导致前一页面不能正常使用。

【权利要求(10)】
1.一种多页面浏览器中数据管理的方法,其特征在于,该方法包括:浏览器判断出当前页面指令为网页本地缓存字段Cookie改写指令;浏览器建立Cookie空间,将当前页面的Cookie写入建立的所述Cookie空间;使同一网站中后一页面进行改写操作时,仍能使前一页面正常使用。

2.如权利要求1所述的方法,其特征在于,所述将当前页面的Cookie写入建立的所述Cookie空间之后,该方法包括:浏览器保存页面与建立的所述Cookie空间之间的对应关系。

3.如权利要求2所述的方法,其特征在于,所述浏览器保存页面与建立的所述Cookie空间之间的对应关系之后,该方法包括:浏览器判断出当前页面指令为Cookie读取指令,在保存的所述对应关系中查询是否存在与当前页面关联的Cookie空间,若存在,则从查询到的Cookie空间读取Cookie ;否则,读取预先保存的与当前页面对应的Cookie。

4.如权利要求2所述的方法,其特征在于,对于进程Cookie,所述浏览器保存页面与建立的所述Cookie空间之间的对应关系之后,该方法包括:浏览器判断出当前页面指令为关闭指令,且判断出与和当前页面对应的Cookie空间相关联的所有页面已关闭,删除建立的与当前页面对应的Cookie空间。

5.如权利要求2所述的方法,其特征在于,对于文件Cookie,所述浏览器保存页面与建立的所述Cookie空间之间的对应关系之后,该方法包括:浏览器判断出当前页面指令为关闭指令,且判断出与和当前页面对应的Cookie空间相关联的所有页面已关闭,同时判断出与当前页面对应的Cookie空间为最后建立的Cookie空间,则将与当前页面对应的Cookie空间内的Cookie写入Cookie文件中,然后删除该Cookie空间。

6.—种多页面浏览器,其特征在于,该浏览器包括判断模块、Cookie空间管理模块和存储模块;所述判断模块,用于判断出当前页面指令为Cookie改写指令,向Cookie空间管理模块发送改写指令及当前页面的Cookie ;所述Cookie空间管理模块包括改写模块,用于接收判断模块发送的改写指令,在存储模块建立Cookie空间,将判断模块发送的Cookie写入建立的所述Cookie空间;使同一网站中后一页面进行改写操作时,仍能使前一页面正常使用;所述存储模块,用于在Cookie空间管理模块的控制下建立Cookie空间,在建立的所述Cookie空间中保存Cookie空间管理模块发送的Cookie。

7.如权利要求6所述的浏览器,其特征在于,所述存储模块包括对应关系存储模块,用于在改写模块的控制下存储页面与建立的所述Cookie空间之间的对应关系。

8.如权利要求7所述的浏览器,其特征在于,判断模块判断出当前页面指令为Cookie读取指令,向Cookie空间管理模块发送读取当前页面Cookie的指令;Cookie空间管理模块包括读取模块,用于接收判断模块发送的读取当前页面Cookie的指令,在对应关系存储模块存储的对应关系中查询是否存在与当前页面关联的Cookie空间,若存在,则从查询到的Cookie空间中读取Cookie,否则,读取预先保存的与当前页面对应的Cookie。

9.如权利要求7所述的浏览器,其特征在于,对于进程Cookie,判断模块判断出当前页 面指令为关闭指令,且判断出与和当前页面对应的Cookie空间相关联的所有页面已关闭 时,向Cookie空间管理模块发送关闭当前页面指令;所述Cookie空间管理模块包括删除模块,用于在接收判断模块发送的关闭当前页面 指令,删除存储模块中保存的与当前页面对应的Cookie空间。

10.如权利要求7所述的浏览器,其特征在于,对于文件Cookie,判断模块判断出当前 页面指令为关闭页面指令,且判断出与和当前页面对应的Cookie空间相关联的所有页面 已关闭,同时判断出与当前页面对应的Cookie空间为最后建立的Cookie空间,则向Cookie 空间管理模块发送关闭当前页面指令;所述Cookie空间管理模块包括写入模块和删除模块;所述写入模块,用于接收Cookie空间管理模块发送的关闭当前页面指令,将存储模块 保存的与当前页面对应的Cookie空间内的Cookie写入Cookie文件,然后向删除模块发送 启动指令;所述删除模块,用于接收所述启动指令后删除存储模块保存的与当前页面对应的 Cookie空间。

【发明内容】
[0009] 本发明提供一种多页面浏览器中数据管理的方法,当同一网站中后一页面进行改 写操作时,该方法能够使前一页面正常使用。

[0010] 本发明提供一种多页面浏览器,当同一网站中后一页面进行改写操作时,该浏览 器能够使前一页面正常使用。

[0011] —种多页面浏览器中数据管理的方法,该方法包括:

[0012] 浏览器判断出当前页面指令为网页本地缓存字段Cookie改写指令;

[0013] 浏览器建立Cookie空间,将当前页面的Cookie写入建立的所述Cookie空间。

[0014] —种多页面浏览器,该浏览器包括判断模块、Cookie空间管理模块和存储模块;

[0015] 所述判断模块,用于判断出当前页面指令为Cookie改写指令,向Cookie空间管理

模块发送改写指令及当前页面的Cookie ;

[0016] 所述Cookie空间管理模块包括改写模块,用于接收判断模块发送的改写指令,在 存储模块建立Cookie空间,将判断模块发送的Cookie写入建立的所述Cookie空间; [0017] 所述存储模块,用于在Cookie空间管理模块的控制下建立Cookie空间,在建立的 所述Cookie空间中保存Cookie空间管理模块发送的Cookie。

[0018] 从上述方案可以看出,本发明中浏览器判断出当前页面指令为Cookie改写指令 时,建立Cookie空间,将当前页面的Cookie写入建立的所述Cookie空间。这样,使同一网 站中后一页面的Cookie与前一页面的Cookie分别单独保存,在后一页面进行了改写操作 时,仍能使前一页面正常使用,从而,解决了多页面浏览器存在的Cookie覆盖问题。

附图说明

[0019] 图1为本发明多页面浏览器中数据管理的方法示例性流程; [0020] 图2为本发明多页面浏览器中数据管理的方法流程图实例; [0021] 图3为本发明多页面浏览器的结构示意图。

具体实施方式

[0022] 为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本 发明进一步详细说明。

[0023] 参见图l,为本发明多页面浏览器中数据管理的方法示例性流程,该方法包括以下 步骤:

[0024] 步骤101,浏览器判断出当前页面指令为Cookie改写指令。

[0025] 步骤102,浏览器建立Cookie空间,将当前页面的Cookie写入建立的所述Cookie 空间。

[0026] 本发明中,建立的Cookie空间用于保存写入的Cookie,—个Cookie空间对应一个 Cookie。

[0027] 对于进程Cookie,当浏览器判断出当前页面指令为关闭指令,且判断出与当前页 面对应的Cookie空间相关联的所有页面已关闭时,删除建立的与当前页面对应的Cookie 空间,这样当再次打开与该Cookie空间对应的任一页面时,因已经删除了 Cookie空间不会 存在现有技术中类似还能直接打开上一用户邮箱中邮件的问题,从而,提高了网络安全性。[0028] 下面通过图2的具体流程实例对本发明方法进行说明,该流程包括以下步骤: [0029] 步骤201,浏览器判断出当前页面指令为Cookie改写指令。

[0030] 所述当前页面指令包括Cookie改写指令、Cookie获取指令或页面关闭指令。对 于Cookie改写指令、Cookie获取指令,浏览器对当前页面指令进行判断之前,需要先截 获当前页面指令,也就是截获浏览器获取Cookie、写入Cookie的时机。截获当前页面指 令可以通过修改系统的默认行为实现截获方式因浏览器和系统平台而异,包括:在常见 的Windows平台上,如果使用微软浏览器(IE, Internet E邓lorer)内核的浏览器,可以 使用微软的应用程序接口开发程序(Detours)库进行截获(Hook)。对于开源的浏览器, 比如火狐浏览器(FireFox),可以直接修改代码,或者使用插件的方式以提供截获功能; 对于需要获取Cookie或者改写Cookie的页面,可以使用页面脚本(Javascript)的文档 对象的Cookie (document, cookie)属性进行设置;对于IE内核,需要Hook的是文档对 象(IHTMLDocument2)接口的读取Cookie属性(get cookie)和设置Cookie属性(put— cookie)。

[0031] 步骤202,浏览器建立Cookie空间,将当前页面的Cookie写入建立的所述Cookie 空间,保存页面与建立的Cookie空间之间的对应关系。

[0032] 所述对应关系包括当前页面以及和当前页面关联的页面,与建立的所述Cookie 空间之间的对应关系。这样,当前页面以及和当前页面关联的页面,可以共享建立的所述 Cookie空间内的Cookie。

[0033] 步骤203,浏览器判断出当前页面指令为Cookie读取指令时,在步骤202中保存的 对应关系中查询是否存在与当前页面关联的Cookie空间,若存在,则从查询到的Cookie空 间读取Cookie ;否则,读取预先保存的与当前页面关联的Cookie。

[0034] 根据不同的实际情况,确认与当前页面是否关联的方法包括多种,下面进行举例 说明。

[0035] 如果通过当前页面上的链接打开了一个新页面,且当前页面与新页面的域不相 同,则这两个页面是没有关联的,不能共享一个Cookie。例如,当前页面是关于某帐户的邮 箱页面,域为”新浪”,使用该邮箱页面打开了域为”搜狐”的广告页面,那么这两个页面是没 有关联的。

[0036] 如果通过当前页面上的链接打开了一个新页面,且当前页面与新页面的域相同, 则这两个页面是有关联的,可以共享同一个Cookie。例如,当前页面为关于某帐户的邮箱页 面,使用该邮箱页面打开的多个邮件的页面,为与该邮箱页面关联的页面;该邮箱页面与该 多个邮件页面可以共享一个Cookie。

[0037] 另外,通过判断是否为新建页面也能确认页面是否关联:若在打开当前页面之后 又打开一个新建页面,则确认这两个页面无关联,不能共享同一个Cookie。比如,打开当前 页面后,在浏览器地址栏中输入一个URL而打开另一个页面,则认为这两个页面没有关联。 再比如,若当前页面为关于某帐户的邮箱页面,然后登录了另一个帐户的邮箱页面,也就是 使用了两个邮箱,则这两个邮箱页面为无关联的页面,不能共享同一个Cookie。较佳地,打 开当前页面之后,如果再打开了一个与当前页面相同的新建页面,确认这两个页面有关联, 可以共享同一个Cookie。

[0038] 除了上述方法外,还可以采用将所有Cookie的用户名列举出来,通过对话框或者其它形式通知用户,通过接收用户输入的选择来确定共享哪个Cookie,也就是与哪个页面 关联。

[0039] 对于进程Cookie,本步骤所述预先保存的与当前页面对应的Cookie为:在本 Cookie进程下,初始保存的与当前页面关联的Cookie。对于文件Cookie,所述预先保存的 与当前页面对应的Cookie为:Cookie文件中预先保存的与当前页面对应的Cookie。 [0040] 步骤204,对于进程Cookie,浏览器判断出当前页面指令为关闭指令,且判断出与 和当前页面对应的Cookie空间相关联的所有页面已关闭,删除建立的与当前页面对应的 Cookie空间。

[0041] 对于文件Cookie,具有需要向客户端的Cookie文件中写入Cookie的特点,为了与 现有的Cookie文件兼容,本发明也相应地采用了向Cookie文件写入的方法,包括:将建立 的最后一个Cookie空间的Cookie写入Cookie文件。

[0042] 对于文件Cookie,本步骤为:浏览器判断出当前页面指令为关闭指令,且判断出 与和当前页面对应的Cookie空间相关联的所有页面已关闭,同时判断出与当前页面对应 的Cookie空间为最后建立的Cookie空间,则将与当前页面对应的Cookie空间内的Cookie 写入Cookie文件中,然后删除该Cookie空间。浏览器判断出当前页面指令为关闭指令后, 也可以不作删除处理,保存建立的Cookie空间以备后续使用。所述后续使用可以为:因关 闭页面时不对Cookie空间进行删除处理,对应文件Cookie保存一个以上Cookie空间,当 再次打开与文件Cookie对应的页面时,可以将各Cookie空间内保存的信息呈现给用户,接 收用户的选择后,对选择的Cookie进行读取或改写操作。

[0043] 参见图3,为本发明多页面浏览器的结构示意图,该浏览器包括判断模块、Cookie 空间管理模块和存储模块;

[0044] 所述判断模块,用于判断出当前页面指令为Cookie改写指令,向Cookie空间管理 模块发送改写指令及当前页面的Cookie ;

[0045] 所述Cookie空间管理模块包括改写模块,用于接收判断模块发送的改写指令,在 存储模块建立Cookie空间,将判断模块发送的Cookie写入建立的所述Cookie空间; [0046] 所述存储模块,用于在Cookie空间管理模块的控制下建立Cookie空间,在建立的 所述Cookie空间中保存Cookie空间管理模块发送的Cookie。

[0047] 可选地,所述存储模块包括对应关系存储模块,用于在改写模块的控制下存储页 面与建立的所述Cookie空间之间的对应关系。

[0048] 当判断模块判断出当前页面指令为Cookie读取指令时,向Cookie空间管理模块 发送读取当前页面Cookie的指令;

[0049] Cookie空间管理模块包括读取模块,用于接收判断模块发送的读取当前页面 Cookie的指令,在对应关系存储模块存储的对应关系中查询是否存在与当前页面关联的 Cookie空间,若存在,则从查询到的Cookie空间中读取Cookie,否则,读取预先保存的与当 前页面对应的Cookie。对于进程Cookie,所述预先保存的与当前页面对应的Cookie为:在 本Cookie进程下,初始保存的与当前页面关联的Cookie。对于文件Cookie,所述预先保存 的与当前页面对应的Cookie为:Cookie文件中预先保存的与当前页面对应的Cookie。 [0050] 对于进程Cookie,当判断模块判断出当前页面指令为关闭指令,且判断出与和当 前页面对应的Cookie空间相关联的所有页面已关闭时,向Cookie空间管理模块发送关闭当前页面指令;

[0051] 所述Cookie空间管理模块包括删除模块,用于在接收判断模块发送的关闭当前 页面指令,删除存储模块中保存的与当前页面对应的Cookie空间。

[0052] 对于文件Cookie,判断模块判断出当前页面指令为关闭页面指令,且判断出与 和当前页面对应的Cookie空间相关联的所有页面已关闭,同时判断出与当前页面对应的 Cookie空间为最后建立的Cookie空间,则向Cookie空间管理模块发送关闭当前页面指 令;

[0053] 所述Cookie空间管理模块包括写入模块和删除模块;

[0054] 所述写入模块,用于接收Cookie空间管理模块发送的关闭当前页面指令,将存储 模块保存的与当前页面对应的Cookie空间内的Cookie写入Cookie文件,然后向删除模块 发送启动指令;

[0055] 所述删除模块,用于接收所述启动指令后删除存储模块保存的与当前页面对应的 Cookie空间。

[0056] 对于文件Cookie,判断模块判断出当前页面指令为关闭页面指令时,也可以不做 删除处理,这种情况下,存储模块将保存建立的Cookie空间,以备后续使用。所述后续使 用可以为:因关闭页面时不对Cookie空间进行删除处理,对应文件Cookie保存一个以上 Cookie空间,当再次打开与文件Cookie对应的页面时,可以将各Cookie空间内保存的信息 呈现给用户,接收用户的选择后,对选择的Cookie进行读取或改写操作。 [0057] 本发明中,浏览器判断出当前页面指令为Cookie改写指令时,建立Cookie空间以 保存当前页面的Cookie,可见,本发明不是采用现有技术中域或域下的子目录的Cookie方 式,而是采用基于页面的Cookie方式。这样,不会出现同一网站中后一页面进行改写操作 时覆盖前一页面的Cookie,而导致前一页面不能正常使用的问题。并且,对于进程Cookie, 在关闭对应某一 Cookie空间的所有页面的同时,也删除建立的该Cookie空间,这样,当再 次打开与该Cookie空间对应的任一页面时,不会存在现有技术中还能直接打开邮箱中的 邮件类似问题,从而,提高了网络安全性。

[0058] 以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详 细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保 护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本 发明的保护范围之内。

多页面浏览器中数据管理的方法及浏览器_第1张图片

多页面浏览器中数据管理的方法及浏览器_第2张图片

你可能感兴趣的:(未分享)