远程浏览器隔离系统中的内联文件下载控制的制作方法
未命名
08-15
阅读:67
评论:0
远程浏览器隔离系统中的内联文件下载控制
背景技术:
1.远程浏览器隔离(rbi)为安全的web网关提供了有效的解决方案。rbi平台可以包括远程隔离浏览器。客户端浏览器被控制为与远程隔离浏览器通信,以执行针对客户端浏览器的浏览操作。在浏览到针对客户端浏览器的web页面之后,rbi平台可以向客户端浏览器提供web页面的呈现,但可以不提供web页面本身,以使得web页面的恶意软件或病毒无法到达客户端设备。例如,rbi平台可以创建连接到web服务器上的web页面并将内容加载到远程隔离浏览器上的隔离浏览器会话。rbi平台可以呈现web内容并将其流式传输给客户端浏览器(例如,客户端设备的最终用户的本机浏览器)作为像素数据,并且客户端浏览器可以将与像素数据对应的像素显示为web页面的图像。以这种方式,浏览活动的执行可以从用户的计算机转移到包括rbi平台的远程服务器。该远程服务器可以托管在云中,或者可以位于组织的网络内的内部。
技术实现要素:
2.提供本发明内容以以简化的形式介绍概念的选择,这些概念将在下面的具体实施方式中进一步描述。本发明内容不旨在标识所要求保护的主题的关键特征或基本特征,也不旨在用于限制所要求保护主题的范围。
3.本文描述了由在计算设备上执行的第一计算机程序执行的方法,以及被配置为执行这种方法的系统。在一个方面中,一种方法在服务器中执行,并且该方法包括代表客户端浏览器经由服务器的隔离浏览器下载文件。从浏览器引擎接收由隔离浏览器的浏览器引擎对文件的下载的检测指示。下载的文件保存在服务器处。确定文件是否被许可由客户端浏览器下载。响应于确定文件未被许可由客户端浏览器下载,下载的文件在服务器处被删除,并且策略事件被传输给客户端浏览器。响应于确定文件被许可由客户端浏览器下载,下载的文件被传输给客户端浏览器。
4.以下参考附图详细描述实施例的进一步的特征和优点,以及各种实施例的结构和操作。应注意的是,方法和系统不限于本文所述的特定实施例。本文中所呈现的这些实施例仅用于说明性目的。基于本文所包含的教导,附加实施例对于(多个)相关领域的技术人员将是明显的。
附图说明
5.并入本文并构成说明书一部分的附图示出了本技术的实施例,并与说明书一起进一步用于解释实施例的原理,并且使相关领域的技术人员能够制作和使用实施例。
6.图1是根据示例实施例的包括远程浏览器隔离(rbi)服务器的系统的框图,该rbi服务器具有用于控制或阻止从用于客户端浏览器的web服务器下载文件的浏览器控制器。
7.图2是根据示例实施例的rbi服务器中用于控制向客户端浏览器的文件下载的方法的流程图。
8.图3是根据示例实施例的包括rbi服务器的系统的框图,该rbi服务器具有用于控
制或阻止从用于客户端浏览器的web服务器下载文件的浏览器控制器。
9.图4是根据示例实施例的rbi服务器中用于控制向客户端浏览器的文件下载的方法的流程图。
10.图5是根据示例实施例的用于配置用于检测来自web服务器的文件下载的隔离浏览器引擎的方法的流程图。
11.图6是根据示例实施例的用于从客户端浏览器接收针对在隔离浏览器处的文件的请求的方法的流程图。
12.图7是根据示例实施例的用于由隔离浏览器引擎请求文件下载的方法的流程图。
13.图8是根据示例实施例的用于确定文件是否被许可下载到客户端浏览器的方法的流程图。
14.图9是根据示例实施例的用于将文件从rbi服务器流式传输至客户端浏览器的方法的流程图。
15.图10是根据示例实施例的用于将文件从rbi服务器流式传输给客户端浏览器的方法的流程图。
16.图11是根据示例实施例的用于将文件从rbi服务器流式传输给客户端浏览器的方法的流程图。
17.图12是根据示例实施例的rbi服务器中用于控制向客户端浏览器的文件下载的方法的流程图。
18.图13是可以用于实现各种实施例的示例基于处理器的计算机系统的框图。
19.当结合附图时,本文所描述的实施例的特征和优点将从下文所述的具体实施方式中变得更加明显,在附图中相似的附图符号始终标识对应的元素。在附图中,相似的附图标记通常表示相同的、功能相似的和/或结构相似的元素。元素首次出现的附图由对应参考编号中最左边的(多个)数字表示。
具体实施方式
20.i.简介
21.本说明书和附图公开了包含所公开的实施例的特征的一个或多个实施例。实施例的范围不仅限于本文公开的方面。所公开的实施例仅仅举例说明了预期的范围,并且还包括所公开实施例的修改版本。实施例由本文所附的权利要求限定。
22.说明书中对“一个实施例”、“实施例”和“示例实施例”等的引用表明,所描述的实施例可以包括特定的特征、结构或特性,但每个实施例不一定包括特定的特性、结构或特性。此外,这样的短语不一定指的是相同的实施例。此外,当结合实施例描述特定特征、结构或特性时,无论是否明确描述,认为在本领域技术人员的知识范围内,结合其他实施例来实现这种特征、结构、或特性。
23.此外,应该理解的是,本文所使用的空间描述(例如,“之上”、“之下”、“上方”、“左侧”、“右侧”、“下方”、“顶部”、“底部”、“垂直”、“水平”等)仅用于说明的目的,并且本文所述结构的实际实现可以以任何取向或方式在空间上布置。
24.在讨论中,除非另有说明,否则诸如“基本上”和“大约”的形容词修饰了本公开实施例的一个或多个特征的条件或关系特性,被理解为意味着条件或特性被定义为在容差
内,该容差对于针对实施例旨在的应用的实施例的操作是可接受的。
25.以下描述了许多示例性实施例。需要注意的是,本文中提供的任何章节/小节标题都不旨在限制性。在整个文档中描述了实施例,并且任何类型的实施例都可以包括在任何部分/小节下。此外,在任何部分/小节中公开的实施例可以以任何方式与在相同部分/小节和/或不同部分/小节描述的任何其他实施例相结合。
26.ii.示例实施例
27.通常,代理服务器可以被耦合作为客户端设备与web服务器之间的web网关。客户端设备处的用户可以尝试浏览到web服务器上的应用(例如,web邮件),而不是直接转到web服务器,他们的请求可以首先转到具有自己域的代理服务器。代理服务器可以被配置为接收诸如来自客户端设备的请求的业务,对该业务应用特定策略,并且如果该业务被批准,则代理服务器可以将该业务转发给托管web应用的目标服务提供方。代理系统的任务是监测用户的业务,以确保用户保持在代理服务器的会话内,并且不直接连接到web服务器应用。然而,实现确保用户留在代理服务器的会话中的过程可能涉及大量的工程和代码。例如,代理服务器可能需要修改从web应用接收的内容,并以将用户保持在代理的会话内的方式包装内容。此外,由于浏览器的工作方式以及javascript与web通信的复杂性,可能需要开发大量的javascript代码(和/或其他代码)来执行此过程。
28.代理服务器的另一问题是,经由代理浏览到web服务器的用户可能在其客户端设备处接收由web服务器提供的所有内容。这可能会导致安全方面的问题。例如,如果用户通过代理服务器浏览到特定web应用,则代理服务器可以将内容(例如,页面或文档的文本)传递给用户的客户端设备。在这种情况下,例如,用户可以能够将内容复制并粘贴到另一文档或电子邮件。此外,出于性能目的,客户端设备处的浏览器可以将文本或机密文档保存在高速缓存中。这种做法可能会带来严重的安全风险,因为即使有安全代理服务器来确保这些数据不会被转移到其他地方,客户端设备处的浏览器仍可能保持文档被高速缓存,使得即使通过该代理,机密数据或下载的文档文件仍有风险。例如,用户可以浏览到公司的web邮件应用来查看机密电子邮件。该公司可以设置代理服务器,但如果web邮件应用将机密数据发送到客户端设备,则一旦机密数据被接收,客户端设备的浏览器就可以将其保存为高速缓存数据,或者用户可以被允许将其复制并粘贴到其他地方。换句话说,一旦它出现在客户端的浏览器处,它就可以由用户使用和/或存储在高速缓存中,并且可以很容易地被导出,尽管该公司并不打算这样做。至于检测文件下载(例如,检测从web服务器下载诸如便携式文档格式(pdf)文档或另一文件之类的文件),可能需要实现启发式方法(例如,启发式引擎)的显著工程和/或代码开发来确定是否正在发生文件下载(例如,通过解析内容头部并计算当前正在使用哪种类型的浏览器)。目前还没有在不同浏览器中用于定义文件下载的标准。
29.数据泄露是指数据未经授权而从计算机或服务器被复制、传输或取回时发生的一种安全漏洞的形式。内容提供方(例如,公司)可能希望允许用户在客户端设备的客户端浏览器上查看数据,诸如电子邮件或web页面,同时限制他们本地地将数据复制或保存在高速缓存中的能力。为了减少数据泄露,可以在代理服务器中使用远程浏览器隔离(rbi)平台,以为web网关提供有效的解决方案。rbi服务器可以包括反向代理,该反向代理超越了超文本传输协议(http)代理服务器的作用,该http代理服务器改变javascript中的超文本标记
语言(html)并向客户端浏览器发送http业务。rbi服务器可以将html、javascript和/或级联样式表(css)(例如,用于构建web页面的任何东西)转换为图片,并且仅将图片的像素(像素数据)传输给客户端浏览器。换言之,rbi服务器可以只传输像素数据,该像素数据形成内容被显示时看起来像的图像,而不是传输可以经由客户端浏览器复制和/或存储的web页面的内容。以这种方式,web页面本身的内容不会在客户端浏览器处被接收,并且不能被保存或复制。用户交互,例如与像素显示器的鼠标点击或触摸屏输入可以在屏幕上的x、y位置(坐标)处被检测,并且可以被发送到rbi服务器。这些位置可以被映射到相应web页面的控制元素,并且由rbi服务器发送到web服务器。以这样,客户端浏览器可以不与web服务器直接通信。rbi服务器甚至可以用于在客户端浏览器处向上或向下滚动以像素呈现的web页面。
30.如上所述,在浏览到针对客户端设备的web页面之后,包括隔离浏览器的rbi服务器可以向客户端设备中的浏览器提供web页面的呈现(例如,图片的像素、像素流、用于呈现图片的指令等),但是可以不提供web页面本身,使得web页面的恶意软件或病毒无法到达客户端设备。本公开描述了一种具有以下机制的rbi服务器:(1)检测由rbi服务器的隔离浏览器执行的文件下载(例如,其中隔离浏览器代表客户端设备浏览器执行文件下载),(2)执行关于将文件下载到客户端浏览器的策略(如果有的话),以及(3)将下载的文件或下载阻止通知转发到客户端设备的浏览器(例如,仿佛响应于从客户端浏览器发出的本机请求)。与之相比,在客户端侧文件下载请求(例如,由客户端浏览器的javascript发起的下载)的情况下,后缀代理或其他代理解决方案可以常规地将从web服务器下载的文件传递到客户端浏览器。此外,隔离浏览器引擎可以被配置为监测文件下载并且在文件下载被检测到时调用功能以向隔离浏览器控制器报告,而不是启发式地试图理解是否发生了文件下载。与其他代理解决方案相比,通过使用隔离浏览器引擎来检测针对客户端浏览器的文件下载,可以利用更少的代码指令和更少的处理周期来有效地实现文件下载检测。此外,通过控制客户端浏览器对下载的文件的访问,而不是默认允许下载的发生,本公开在防止数据泄露方面提供了更大的控制。
31.在一些实施例中,隔离浏览器可以在基于云的系统中运行。当用户试图浏览到云中的web服务器设备上的web应用(例如,web邮件)时,他们的客户端设备中的浏览器可以连接到基于云的系统的服务,并且基于云的服务可以将客户端设备的浏览器分配给云中的隔离浏览器。云中的隔离浏览器可以代表客户端浏览器执行与web应用的实际浏览。隔离浏览器可以被配置为将呈现的web页面显示流式传输回客户端浏览器(例如,作为像素、呈现指令等)。如上所述,隔离浏览器中的浏览器引擎可以被配置为监测文件下载并且调用功能来报告何时检测到文件下载,而不是必须启发式地确定是否发生了文件下载。报告对文件下载的检测比启发式地确定何时发生下载更有效,至少因为在报告检测时使用更少的代码指令和更少的处理周期。例如,组织可以基于文件下载检测和文件下载策略实施(例如,用于允许或阻止从云应用或web应用下载文件的规则)来控制用户(例如,员工)可以对基于云的应用做什么。如果组织希望阻止某些用户从云应用保存文件,则可以在rbi服务器中配置策略以减轻此类活动。例如,隔离浏览器软件可以被配置为报告文件下载,并且rbi服务器可以确定是否允许将文件进一步下载到客户端设备浏览器。如果没有下载文件的许可的用户接收到附有pdf文件的电子邮件,则rbi服务器可以阻止将pdf文件下载到用户的客户端设
备。
32.针对远程浏览器隔离系统中的内联文件下载控制的实施例可以以各种方式实现。例如,图1是根据示例实施例的用于控制或阻止来自用于客户端浏览器的web服务器的文件下载的系统100的框图。如图1所示,系统100包括远程浏览器隔离(rbi)服务器102、客户端设备106和web服务器106。rbi服务器102包括隔离浏览器控制器108。系统100如下被详细描述。
33.如以下关于图13更详细描述的,远程浏览器服务器102、客户端设备106和web服务器106可以各自包括任何合适的计算设备,诸如固定计算设备(例如,台式计算机或个人计算机)、移动计算设备(例如,设备、个人数字助理(pda)、膝上型计算机、笔记型计算机、诸如苹果ipad
tm
的平板计算机、上网本等)、移动电话(例如,蜂窝电话、智能电话(诸如苹果iphone)、实现安卓
tm
操作系统的电话、双屏电话、windows电话等)、可穿戴计算设备(例如,包括诸如glass
tm
等智能眼镜的头戴式设备
tm
、oculus vr的llc等)、游戏控制台/系统(例如,任天堂等)、电器、机顶盒等。
34.rbi服务器102可以包括代理服务器,该代理服务器通过任何合适的通信介质(例如,有线、无线、光学等)通信耦合到客户端设备104和web服务器106中的每一个。例如,rbi服务器102、客户端设备104和web服务器106可以通过一个或多个网络通信,诸如局域网(lan),例如无线lan(wlan),和/或诸如internet的广域网(wan)。rbi服务器102可以被配置为执行并控制浏览器以浏览用户试图从客户端设备104浏览的资源,并且与客户端设备104通信以传输视频和/或像素流。例如,rbi服务器102可以被配置为尤其从客户端设备104接收用于访问诸如由web服务器106托管的web应用的资源的http请求,创建与web服务器106的隔离浏览器会话,并且代表客户端设备104向web服务器106传输对应的http请求。rbi服务器102还可以被配置为从web服务器106接收http响应,将内容从资源加载到rbi服务器上,并且将呈现的内容(例如,作为流像素)传输给客户端设备104的本机浏览器。换句话说,浏览活动的执行从客户端设备104被移动到rbi服务器102。rbi服务器102可以例如托管在云中或位于组织的网络内的内部。rbi服务器102可以包括隔离浏览器控制器108,该浏览器控制器108可以被配置为尤其监测和控制由客户端设备104针对web服务器106所服务的文件所请求的文件下载。
35.客户端设备104可以是包括用于经由网络(例如,在万维网上)访问信息并在web页面中显示内容的web浏览器(即,客户端浏览器)的用户设备。客户端设备104可以被配置为使用http经由网络与rbi服务器102通信,以访问web服务器106的web服务或资源。例如,客户端设备104可以被配置为接收源自web服务器106的并且已经在rbi服务器102处被转换为视频或像素流的web内容。客户端设备104的客户端浏览器可以使用例如javascript和html来呈现web内容。客户端设备104还可以被配置为经由rbi服务器102从web服务器106请求和下载文件。
36.web服务器106可以被配置为存储、处理web页面,并且将web页面传送到rbi服务器102,该web页面可以包括具有脚本、样式表、图像和/或文本的html文档。web服务器106可以托管可以由rbi浏览器102代表客户端设备104访问的web应用(例如,web邮件、在线零售、网
上银行等),并且可以经由rbi服务器102向客户端设备104提供web服务。web服务器106还可以被配置为将文件(例如,pdf文件、图像文件等)下载到rbi服务器102。例如,web服务器106可以被配置为处理通过http和其他相关协议的、来自代表客户端设备104的rbi服务器102的传入网络请求。web服务器106还可以被配置为从代表客户端设备104的rbi服务器102接收内容,诸如提交的web表单数据或上传的文件。
37.rbi服务器102可以以各种方式进行操作以执行其功能。例如,图2是根据示例实施例的rbi服务器中用于控制向客户端浏览器的文件下载的方法的流程图200。在实施例中,rbi服务器102可以根据流程图200操作。下面参照图1和图3来描述流程图200。
38.图3是根据示例实施例的包括rbi服务器的系统300的框图,该rbi服务器具有用于控制或阻止从针对客户端浏览器的web服务器的文件下载的浏览器控制器。如图3所示,系统300包括远程浏览器隔离(rbi)服务器102、客户端设备104、web服务器106和独立web服务器350。rbi服务器102包括隔离浏览器310。隔离浏览器310包括隔离浏览器控制器108和隔离浏览器引擎312。隔离浏览器控制器108包括策略引擎320、客户端控制器324和文件处理程序(handler)322。客户端设备104包括客户端浏览器330。客户端浏览器330包括像素流呈现器332、文件下载模拟器334和文件下载事件处理程序336。web服务器106包括web应用340。在一些实施例中,系统300可以在系统100中实现。为了说明的目的,下面参照图2的流程图200详细描述系统300。
39.客户端浏览器330和rbi服务器102可以通过一个或多个信道通信。在一个实施例中,客户端浏览器330可以通过单个信道与rbi服务器102通信。备选地或附加地,客户端浏览器330可以经由一个或多个信道与隔离浏览器310、隔离浏览器控制器108或隔离浏览器引擎312中的一个或多个通信。
40.在一些实施例中,隔离浏览器控制器108可以被配置为配置隔离浏览器引擎312的操作参数。例如,隔离浏览器控制器108可以将隔离浏览器引擎312配置为检测来自web服务器106和/或web应用340的文件下载,并且将检测到的文件下载报告给隔离浏览器控制器。在另一示例中,浏览器控制器108可以配置隔离浏览器引擎312来报告关于下载的文件314的信息,诸如其文件名以及可以从哪里(例如,从存储器、文件系统和/或本地磁盘)取回该文件。在其他实施例中,隔离浏览器引擎312可以被编译和设计为向隔离浏览器控制器108报告检测到的文件下载和/或关于下载的文件314的信息。
41.尽管隔离浏览器引擎312和隔离浏览器控制器108被示为是分离的,其中隔离浏览器引擎312通信地耦合到web服务器106和隔离浏览器控制器310,并且被配置为存储下载的文件314,但是在一些实施例中,隔离浏览器控制器108可以与隔离浏览器引擎312集成。例如,隔离浏览器引擎312可以包括现成的浏览器引擎(例如,谷歌微软等),并且隔离浏览器控制器108可以是分离的并且与隔离浏览器引擎312通信,以控制如本文所述的由隔离浏览器引擎312执行的功能。在其他实施例中,隔离浏览器引擎312可以包括隔离浏览器控制器108的全部或一部分,使得本文中关于隔离浏览器控制108描述的功能可以由隔离浏览器引擎312执行。
42.流程图200从步骤202开始。在步骤202中,在rbi服务器中,代表web服务器与客户端设备中的浏览器建立和保持rbi会话。例如,rbi服务器102可以被配置为从客户端设备104接收http请求。http请求可以请求访问由web服务器106提供的web应用340提供的内容
(例如,web邮件web页面)。隔离浏览器控制器108可以根据访问策略来评估http请求或者可以不根据访问策略来评估http请求。如果被允许,隔离浏览器控制器108可以控制隔离浏览器引擎312创建隔离浏览器会话,连接到web应用340,并且将所请求的web页面加载到远程隔离浏览器310上。隔离浏览器引擎312可以呈现web页面并且将web页面(例如,html、javascript、css等)转换为像素。rbi服务器102可以将像素(例如,通过html5、虚幻引擎
tm
,等)流式传输到客户端浏览器330。客户端浏览器330可以从rbi服务器102接收流式传输的像素,并且像素流呈现器332可以呈现接收到的像素并且显示像素以形成呈现的web页面的图像。rbi服务器102还可以传输javascript代码以捕捉用户与客户端浏览器330中显示的像素的交互。备选地或附加地,rbi服务器102可以向客户端浏览器330传输用于呈现web页面的指令,而不是流式传输像素,并且客户端浏览器330可以基于指令来呈现web页面。rbi服务器102可以使用其他方法来向客户端浏览器330提供web页面的呈现。
43.再次参考图2,在步骤204中,rbi服务器可以从客户端设备中的浏览器接收对从web服务器下载的文件的请求。在实施例中,rbi服务器102可以被配置为从客户端浏览器330接收针对从web应用340下载的文件(例如,pdf文件、文本文件、图像文件等)的请求(例如,该请求可以作为用户点击所呈现的web页面中的链接、进入不同url等的结果而被触发)。
44.在步骤206中,文件从web服务器被下载到rbi服务器。例如,隔离浏览器引擎312可以被配置为建立或保持与web应用340的会话,并且基于来自客户端浏览器330的请求从web应用340下载文件。隔离浏览器引擎312可以被配置为将下载的文件314存储在例如rbi服务器102的本地盘的文件系统、另一存储设备中,和/或下载的文件可以保存在易失性存储器中(例如,关于图13更详细地描述的)。
45.隔离浏览器引擎312可以向隔离浏览器控制器108传输事件,该事件指示下载的文件314的下载被检测,并且可以向隔离浏览器控制器108提供附加信息。例如,隔离浏览器引擎312可以标识下载的文件314存储在哪里、其文件名(例如,由web服务器106指示的文件名)和/或web应用340的域。隔离浏览器控制器108还可以保持关于与客户端浏览器330的会话的信息,诸如请求文件的用户的标识符和/或由客户端浏览器标识的用于浏览的网络应用340的域。
46.在步骤208中,在文件下载到客户端设备被许可的情况下,该方法进行到步骤210。例如,隔离浏览器控制器108可以被配置为确定将下载的文件314下载到客户端浏览器330被许可。这个决定可以基于策略被确定,也可以不基于策略被确定。
47.在步骤210中,文件可以被下载到客户端设备。例如,如果隔离浏览器控制器108确定将下载的文件314下载到客户端浏览器330被许可,则隔离浏览器控制108和/或隔离浏览器引擎312可以被配置为将下载的文件314下载到客户端浏览器330。
48.在步骤208中,在文件下载未被许可的情况下,该方法进行到步骤212。例如,隔离浏览器控制器108可以被配置为确定将下载的文件314下载到客户端浏览器330未被许可。这个决定可以基于策略被确定,也可以不基于策略被确定。
49.在步骤212中,该文件可以被删除。例如,如果隔离浏览器控制器108确定将下载的文件314下载到客户端浏览器330未被许可,则隔离浏览器控制器108和/或隔离浏览器引擎312可以被配置为删除下载的文件314。
50.在一些实施例中,下载的文件314可以默认下载到客户端浏览器330,除非隔离浏览器控制器108确定向客户端浏览器330的下载未被许可。在其他实施例中,下载的文件314可以默认被删除,除非隔离浏览器控制器108确定向客户端浏览器330的下载被许可。
51.rbi服务器102可以以各种方式进行操作以执行其功能。例如,图4是根据示例实施例的rbi服务器中用于控制向客户端浏览器的文件下载的方法的流程图400。在实施例中,rbi 102可以根据流程图400操作。下面参照图1和图3来描述流程图400。
52.流程图400以步骤402开始。在步骤402中,从隔离浏览器的浏览器引擎接收由浏览器引擎在服务器处对文件的下载被检测的指示,其中下载的文件在服务器处被保存。如上所述,隔离浏览器引擎312可以被配置为基于来自客户端浏览器330的请求从web应用340下载文件。隔离浏览器312可以被配置为将下载的文件314存储在例如rbi服务器102的本地盘的文件系统中、另一存储设备中,和/或下载的文件312可以保存在易失性存储器中。rbi服务器102的隔离浏览器引擎312可以被配置为监测文件下载,检测文件下载,并且调用功能以向隔离浏览器控制器108传输指示文件的下载被检测的通知。隔离浏览器控制器108可以被配置为接收该通知。
53.在步骤404中,确定文件是否被许可由客户端浏览器下载。例如,策略引擎320可以被配置为确定下载的文件314到客户端浏览器330的下载是否被许可(例如,是否允许或阻止将文件下载到客户端浏览器330)。在一些实施例中,可以在隔离浏览器310中配置策略,用于确定隔离浏览器控制器108是否可以将源自web服务器106的文件下载到客户端浏览器330。在一些实施例中,用户(例如,管理员)可以利用下载策略参数来配置隔离浏览器310。文件下载策略可以取决于各种标准。例如,将下载的文件314下载到客户端浏览器330的许可可以取决于与以下相关联的许可:用户、文件类型(例如,由文件名或文件扩展名指示)或起源web服务器(例如,由下载的文件源自的web应用的域,诸如web应用340的域名指示)。然而,在一些实施例中,可以不使用策略来允许或阻止到客户端浏览器330的下载。例如,可以默认允许或拒绝向客户端浏览器330的文件下载。
54.在步骤406中,在文件下载被许可的实例中,该方法进行到步骤408。例如,在策略引擎320确定将下载的文件314下载到客户端浏览器330被许可的实例中,该方法进行到步骤408。
55.在步骤408中,响应于确定文件被许可由客户端浏览器下载,下载的文件被传输给客户端浏览器。例如,响应于策略引擎320确定将下载的文件314下载到客户端浏览器330被许可,文件处理程序322可以被配置为将下载的文件314传输给客户端浏览器330。
56.在步骤406中,在文件下载未被许可的实例中,该方法进行到步骤410。例如,在策略引擎320确定将下载的文件314下载到客户端浏览器330未被许可的实例中,该方法进行到步骤410。
57.在步骤410中,响应于确定文件未被许可由客户端浏览器下载,服务器处的下载的文件被删除,并且策略事件被传输给客户端浏览器。例如,响应于策略引擎320确定将下载的文件314下载到客户端浏览器330未被许可,文件处理程序322可以被配置为删除下载的文件314。在一些实施例中,隔离浏览器控制器108可以向客户端浏览器330传输策略事件。策略事件可以向客户端浏览器330指示他们用于下载文件(例如,下载的文件314)的请求已被拒绝和/或文件下载已被阻止)。
58.通过使用隔离浏览器引擎312来检测针对客户端浏览器330的文件下载,文件下载检测可以以相比启发式引擎中所需的更少的代码指令和更少的处理周期来有效地实现。此外,通过控制客户端浏览器330对下载的文件314的访问,而不是默认允许下载发生,本公开在防止数据泄露方面提供了更大的控制。例如,隔离浏览器控制器108可以拒绝对敏感信息的访问,使得该信息可以不显示在客户端浏览器330中或存储在客户端设备104上的高速缓存中,并且用户可以不复制或分发敏感信息。
59.隔离浏览器控制器108可以以各种方式操作以执行其功能。例如,图5是根据示例实施例的用于配置用于检测来自web服务器的文件下载的隔离浏览器引擎的方法的流程图500。流程图500可以作为流程图400(图4)的一部分来执行,诸如在步骤402之前。在实施例中,隔离浏览器控制器108可以根据流程图500操作。下面参照图1和图3来描述流程图500。
60.流程图500包括步骤502。在步骤502中,浏览器引擎被配置为代表客户端浏览器听取文件下载事件。例如,隔离浏览器控制器108可以被配置为配置隔离浏览器引擎312以监听文件下载(例如,从web应用340下载的文件)。在隔离浏览器引擎312检测到文件下载的实例中,隔离浏览器引擎312可以被配置为调用向隔离浏览器控制器108报告检测到的文件下载的功能。如上所述,与启发式地确定文件是否已从web应用下载相比,隔离浏览器引擎312使用更少的代码指令和更少的处理周期来检测和报告文件下载。
61.隔离浏览器310可以以各种方式操作以执行其功能。例如,图6是根据示例实施例的用于在隔离浏览器处从客户端浏览器接收对文件的请求的方法的流程图600。流程图600可以作为流程图400(图4)的一部分来执行,例如在步骤402之前。在实施例中,隔离浏览器310可以根据流程图600进行操作。下面参照图1和图3来描述流程图600。
62.流程图600包括步骤602。在步骤602中,在从浏览器引擎接收由浏览器引擎在服务器处对文件的下载被检测的指示之前,在隔离浏览器处从客户端浏览器接收针对文件的请求。例如,隔离浏览器控制器108可以被配置为从客户端浏览器330接收http请求。http请求可以指示要从诸如web应用340之类的特定资源下载的文件(例如,pdf文件、图像文件、word文件等)。随后,浏览器引擎312可以向web应用340传输针对所指示的文件的请求,从web应用340接收所请求的文件,并且向隔离浏览器控制器108传输在rbi服务器102处文件(例如下载的文件314)的下载被检测的指示。
63.隔离浏览器引擎312可以以各种方式操作以执行其功能。例如,图7是根据示例实施例的用于由隔离浏览器引擎请求文件下载的方法的流程图700。流程图700可以作为流程图400(图4)的一部分来执行,诸如在步骤402之前。在实施例中,隔离浏览器引擎312可以根据流程图700操作。下面参照图1和图3来描述流程图700。
64.流程图700以步骤702开始。在步骤702中,浏览器引擎可以传输针对文件的请求。例如,隔离浏览器引擎312可以被配置为代表客户端浏览器330传输针对来自web应用340的文件的请求。如上所述,隔离浏览器控制器108可以从客户端浏览器330接收对来自web应用340的文件的http请求。作为响应,隔离浏览器控制器108可以被配置为控制隔离浏览器引擎312,以代表客户端浏览器330向web应用340传输针对所请求的文件的http请求。在其他实施例中,客户端浏览器引擎312可以被配置为从客户端浏览器330接收http请求,并且作为响应,代表客户端浏览器330向web应用340传输针对所请求文件的对应http请求。
65.在步骤704中,响应于该请求,来自远程web服务器的文件被接收。例如,web应用
340可以被配置为在对请求的http响应中将文件传输给隔离浏览器引擎312。隔离浏览器引擎312可以被配置为从web应用340接收所请求的文件。隔离浏览器引擎312还可以被配置为将下载的文件作为下载的文件314存储在例如rbi服务器102的本地盘的文件系统、另一存储设备中。备选地或附加地,下载的文件314可以保存在rbi服务器102处的易失性存储器中。隔离浏览器引擎312可以被配置为向隔离浏览器控制器108传输指示下载的文件314的下载被检测的事件,并且可以向隔离浏览器控制器108提供附加信息(例如,web应用340的域名、由web应用340分配的文件名、文件扩展名等)。
66.策略引擎320可以以各种方式操作以执行其功能。例如,图8是根据示例实施例的用于确定文件是否被许可下载到客户端浏览器的方法的流程图800。流程图800可以在例如流程图400(图4)的步骤404期间执行。在实施例中,策略引擎320可以根据流程图800操作。下面参照图1和图3来描述流程图800。
67.流程图800包括步骤802。在步骤802中,确定下载是否被许可下载到客户端浏览器包括:基于针对用户、文件的文件名、文件扩展名或web应用的域中的至少一项的策略来确定下载是否被许可。例如,策略引擎320可以被配置为确定从web应用340下载到隔离浏览器引擎312的下载的文件314是否被许可下载到客户端浏览器330。策略引擎320可以利用一个或多个标准来确定下载的文件314是否被许可下载到客户端浏览器330。标准的一些示例包括与诸如在客户端设备104处请求文件下载的用户之类的用户相关联的许可、可以由下载的文件314的文件名或文件扩展名指示的特定文件或文件类型的许可、可以由web应用340的域指示的下载的文件314的来源,其将该文件提供给隔离浏览器引擎312。在一些实施例中,用户(例如,管理员)可以在隔离浏览器330中配置下载策略参数,该参数可以被策略引擎320用来确定下载的文件314到客户端浏览器330的下载是被允许还是被阻止。
68.如上所述,在策略引擎320确定文件下载被许可的实例中,隔离浏览器控制器108可以将下载的文件314传输给客户端浏览器330。在策略引擎320确定文件下载未被许可的实例中,隔离浏览器控制器108可以删除下载的文件314,并且向客户端浏览器330传输指示将下载的文件314下载到客户端浏览器330已被阻止的事件。该事件可以指示下载由于策略而被阻止,和/或可以指示哪个策略阻止了下载。
69.浏览器控制器108可以以各种方式操作以执行其功能。例如,图9是根据示例实施例的用于将文件从rbi服务器流式传输给客户端浏览器的方法的流程图900。例如,流程图900可以在流程图400(图4)的步骤408期间执行。在实施例中,浏览器控制器108可以根据流程图900操作。下面参照图1和图3来描述流程图900。
70.流程图900包括步骤902。在步骤902中,将下载的文件传输给客户端浏览器包括将文件流式传输给客户端浏览器。例如,在策略引擎320确定下载的文件314被许可下载到客户端浏览器330的实例中,文件处理程序322可以被配置为将下载的文件314的数据传输给客户端浏览器330。在一些实施例中,文件处理程序322可以经由流式传输协议以字节流(例如,作为二进制数据)将下载的文件314的数据传输给客户端浏览器330。流式传输协议可以包括,例如,实时流式传输协议(rtsp)、实时传送协议(rtp)、实时传送控制协议(rtcp)等。客户端设备104中的文件下载模拟器334可以被配置为在客户端浏览器330处针对下载的文件314的数据发起或以编程方式创建下载。例如,下载模拟器334的javascript可以被配置为使用对象url来模拟文件下载。在这一点上,下载模拟器334可以利用javascript函数(例
如,“createobjecturl()”),该函数可以接收以诸如二进制大对象(blob)的一些表示的下载的文件314数据的javascript副本,并且创建在客户端设备104处为该特定数据集制造的url。可以经由用户交互(例如,鼠标点击、屏幕触摸等)来浏览或选择所创建的url,以在客户端浏览器330处启动下载的文件314的下载。
71.浏览器控制器108可以以各种方式进行操作以执行其功能。例如,图10是根据示例实施例的用于将文件从rbi服务器流式传输给客户端浏览器的方法的流程图1000。例如,流程图1000可以在流程图400(图4)的步骤408期间执行。在实施例中,浏览器控制器108可以根据流程图1000进行操作。下面参照图1和图3来描述流程图1000。
72.流程图1000包括步骤1002。在步骤1002中,将文件流式传输给客户端浏览器包括在文件在服务器处被下载的同时,将文件流式传输至客户端浏览器。例如,如上所述,隔离浏览器引擎312可以与web应用340建立会话,并且基于来自客户端浏览器330的请求从web应用340下载文件。隔离浏览器引擎312可以向隔离浏览器控制器108传输指示下载的文件314的下载被检测的事件。如果策略引擎320已经确定下载的文件314被许可下载到客户端浏览器330,则文件处理程序322可以被配置为将下载的文件314传输给客户端浏览器330。在一些实施例中,策略引擎320可以确定在文件被下载到隔离浏览器引擎312之前或者在文件被下载到隔离浏览器引擎312期间,文件被许可下载到客户端浏览器330。例如,一旦从客户端浏览器330接收到针对文件下载的请求,其可以包括所请求的文件的标识和/或web应用340的域,策略引擎320就可以确定文件是否被许可下载到客户端浏览器330。当隔离浏览器引擎312从web应用340接收到文件时,文件处理程序322(或隔离浏览器引擎312)可以同时将已经下载到隔离浏览器312的文件的部分传输或流式传输给客户端浏览器330。备选地或附加地,策略引擎320可以在web应用340已经开始将文件传输给隔离浏览器引擎312之后并且在将文件下载到隔离浏览器引擎312已经完成之前确定文件被许可下载到客户端浏览器330。一旦策略引擎320已经确定文件被许可下载到客户端浏览器330,则隔离浏览器引擎312或文件处理程序322可以同时将已经下载到隔离浏览器312的文件的部分传输或流式传输给客户端浏览器。
73.浏览器控制器108可以以各种方式进行操作以执行其功能。例如,图11是根据示例实施例的用于将文件从rbi服务器流式传输给客户端浏览器的方法的流程图1100。例如,流程图1100可以在流程图400(图4)的步骤408期间执行。在实施例中,浏览器控制器108可以根据流程图1100进行操作。下面参照图1和图3来描述流程图1100。
74.流程图1100从步骤1102开始。在步骤1102中,将下载的文件传输给客户端浏览器包括经由独立于服务器的独立web服务器发布下载的文件。例如,在策略引擎320确定下载的文件314被许可下载到客户端浏览器330的实例中,文件处理程序322可以被配置为通过诸如独立服务器350之类的分离的web服务器发布下载的文件,该独立服务器350可以独立于web服务器106和/或rbi服务器102。
75.在步骤1104中,向客户端浏览器传输指示文件已被下载的事件。例如,客户端控制器324可以被配置为向客户端浏览器330传输事件,以通知客户端浏览器330下载的文件314可用于从独立web服务器350下载。
76.在步骤1106中,可以控制客户端浏览器向独立web服务器发出请求,该请求用以发起通过http(超文本传输协议)向客户端浏览器进行文件的下载。例如,客户端控制器324可
以被配置为控制客户端浏览器330的文件下载事件处理程序336,以向独立web服务器350(例如,通过http)发出用以将下载的文件314从独立web服务器350下载到客户端浏览器330的请求。
77.隔离浏览器310可以以各种方式操作以执行其功能。例如,图12是根据示例实施例的rbi服务器中用于控制到客户端浏览器的文件下载的方法的流程图1200。流程图1200可以作为流程图400(图4)的一部分来执行,诸如在步骤402之前和/或独立于流程图400。在实施例中,隔离浏览器310可以根据流程图1200操作。下面参照图1和图3来描述流程图1200。
78.流程图1200以步骤1202开始。在步骤1202中,从客户端浏览器接收用以访问web服务器的web页面的请求。例如,rbi服务器102可以被配置为从客户端浏览器330接收http请求。http请求可以请求访问由web服务器106的web应用340提供的诸如web页面(例如,web邮件web页面)之类的内容。隔离浏览器控制器108可以针对访问策略来评估http请求,或者可以不针对访问策略来评估http请求。
79.在步骤1204中,浏览器引擎被控制为响应于请求从web服务器访问web页面,其中web页面包括到文件的、用于下载文件的链接。例如,web服务器106可以被配置为存储、处理web页面,并且将web页面传送到隔离浏览器引擎312,web页面可以包括具有脚本、样式表、图像和/或文本的html文档。web服务器106可以托管可以由浏览器引擎312代表客户端浏览器330访问的web应用340(例如,web邮件、在线零售、在线银行等),并且可以经由rbi服务器102向客户端浏览器330提供web服务。隔离浏览器控制器108可以控制隔离浏览器引擎312创建隔离浏览器会话,连接到web应用340,并且将所请求的web页面加载到远程隔离浏览器310上。web页面可以包括到文件(例如,pdf文档或另一文件)的链接,该链接用于将文件(例如下载的文件314)从网络应用340下载到客户端浏览器330。
80.在步骤1206中,响应于在浏览器引擎处从web服务器接收到web页面:浏览器引擎被控制以呈现web页面,并且执行以下至少一项:将web页面转换为像素并且将像素流式传输给客户端浏览器,或者向客户端浏览器传输指令以用于在客户端浏览器处呈现web页面。例如,隔离浏览器控制器108可以被配置为控制隔离浏览器引擎312来呈现加载的web页面。作为响应,隔离浏览器引擎312可以被配置为呈现加载的web页面(例如,包括html、javascript、css等),并且将web页面转换为像素,该像素可以形成当在客户端设备104处显示时看起来像web页面的图像。在一些实施例中,隔离浏览器控制器108可以被配置为将像素流式传输(例如,通过html5、虚幻引擎等)到客户端浏览器330。客户端浏览器330可以从隔离浏览器控制器108接收流式传输的像素,并且像素流呈现器332可以呈现接收到的像素并显示像素以在客户端设备106的显示屏中形成呈现的web页面的图像。备选地或附加地,隔离浏览器控制器108可以向客户端浏览器330传输用于呈现web页面的像素的指令,并且客户端浏览器330可以基于指令显示形成web页面的图像的像素。
81.在一些实施例中,隔离浏览器控制器108还可以传输javascript代码,该javascript代码可以用于捕捉在客户端浏览器330中显示web页面的图像的像素处的用户交互。例如,当用户与web页面的图像的x,y坐标处的像素显示交互(例如,通过鼠标点击或触摸屏输入)时,在该处像素表示用于下载文件(例如,pdf文件)的链接,则客户端浏览器330可以将x,y坐标传输给隔离浏览器控制器108。隔离浏览器控制器108可以将x,y坐标映射到用于下载web页面中的文件的链接,并且控制隔离浏览器引擎312将对应于该链接的
url发送到web应用340以请求文件下载以接收下载的文件314。
82.iii.示例计算机系统实现
83.本文描述的实施例可以用硬件或与软件和/或固件组合的硬件来实现。例如,本文所描述的实施例可以被实现为计算机程序代码/指令,该计算机程序代码/指令被配置为在一个或多个处理器中执行并存储在计算机可读存储介质中。备选地,本文所描述的实施例可以被实现为硬件逻辑/电路装置。
84.如本文所述,所描述的实施例,包括但不限于,系统100和400及其任何组件和/或子组件,以及本文所描述的流程图/流程图表的任何操作和部分和/或本文所描述的其他示例,可以用硬件或具有软件和/或固件的任何组合的硬件来实现,包括被实现为被配置为在一个或多个处理器中执行并存储在计算机可读存储介质中的计算机程序代码,或者被实现为硬件逻辑/电路,诸如被一起实现在片上系统(soc)、现场可编程门阵列(fpga)、专用集成电路(asic)、可信平台模块(tpm)中等。soc可以包括集成电路芯片,该集成电路芯片包括以下一项或多项:处理器(例如,微控制器、微处理器、数字信号处理器(dsp)等)、存储器、一个或多个通信接口和/或用于执行其功能的其他电路和/或嵌入式固件。
85.本文所述的实施例可以在一个或多个计算设备中实现,该一个或多个计算设备类似于移动系统和/或固定或移动计算机实施例中的计算设备,包括本文所描述的移动系统和/或计算设备的一个或多个特征以及备选特征。本文提供的对计算设备的描述是为了说明的目的而提供的,而不是为了限制。实施例可以在其他类型的计算机系统中实现,如(多个)相关领域的技术人员所知的。
86.图13是可用于实现各种实施例的示例基于处理器的计算机系统1300的框图。rbi服务器102、客户端设备104、web服务器106和独立web服务器350可以包括任何类型的移动或固定计算设备,诸如台式计算机、服务器、视频游戏控制台等。例如,rbi服务器102、客户端设备104、web服务器106和独立web服务器350可以是任何类型的移动计算设备(例如,设备、个人数字助理(pda)膝上型计算机、笔记本计算机、诸如苹果ipad
tm
的平板计算机、上网本等)、移动电话(例如,蜂窝电话、诸如微软电话、苹果iphone、实现安卓
tm
操作系统的电话的智能电话等)、可穿戴计算设备(例如,包括诸如包括诸如glass
tm
等智能眼镜的头戴式设备
tm
、oculus的oculus vr、llc等)、诸如台式计算机或pc(个人计算机)等的固定计算设备、游戏控制台/系统(例如微软索尼任天堂或等)等。
87.rbi服务器102、客户端设备104、web服务器106和独立web服务器350可以各自在一个或多个计算设备中实现,该计算设备包含类似于固定或移动计算机实施例中的计算设备1300的特征和/或备选特征。本文提供的对计算设备1300的描述是为了说明的目的而提供的,而不是为了限制。如(多个)相关领域的技术人员所知,实施例可以在其他类型的计算机系统中实现。
88.如图13所示,计算设备1300包括一个或多个处理器(称为处理器电路1302)、系统存储器1304和总线1306,总线1306将包括系统存储器1304的各种系统组件耦合到处理器电路1302中。处理器电路1302是在作为中央处理单元(cpu)、微控制器、微处理器和/或其他物理硬件处理器电路的一个或多个物理硬件电路设备元件和/或集成电路设备(半导体材料
芯片或裸片)中实现的电学电路和/或光学电路。处理器电路1302可以执行存储在计算机可读介质中的程序代码,诸如操作系统1330的程序代码、应用程序1332、其他程序1334等。总线1306表示几种类型的总线结构中的任何类型中的一个或多个类型,包括存储器总线或存储器控制器、外围总线、加速图形端口、以及使用各种总线架构中的任何总线架构的处理器或本地总线。系统存储器1304包括只读存储器(rom)1308和随机存取存储器(ram)1310。基本输入/输出系统1312(bios)被存储在rom 1308中。
89.计算设备1300还具有以下驱动器中的一个或多个:用于从硬盘读取和向硬盘写入的硬盘驱动器1314,用于从可移动磁盘1318读取或向可移除磁盘写入的磁盘驱动器1316,以及用于从诸如cd rom、dvd rom或其他光学介质的可移动光盘1322读取或向其写入的光盘驱动器1320。硬盘驱动器1314、磁盘驱动器1316和光盘驱动器1320分别通过硬盘驱动器接口1324、磁盘驱动器接口1326和光盘驱动器接口1328连接到总线1306。驱动器及其相关联的计算机可读介质为计算机提供计算机可读指令、数据结构、程序模块和其他数据的非易失性存储。尽管描述了硬盘、可移动磁盘和可移动光盘,但是可以使用其他类型的基于硬件的计算机可读存储介质来存储数据,诸如闪存卡、数字视频盘、ram、rom和其他硬件存储介质。
90.许多程序模块可以存储在硬盘、磁盘、光盘、rom或ram上。这些程序包括操作系统1330、一个或多个应用程序1332、其他程序1334和程序数据1336。应用程序1332或其他程序1334可以包括,例如,用于实现以下的计算机程序逻辑(例如,计算机程序代码或者指令):rbi服务器102、客户端设备104、web服务器106、独立web服务器350、隔离浏览器310、隔离浏览器引擎312、隔离浏览器控制器108、策略引擎320、客户端控制器324、文件处理程序322、客户端浏览器330、像素流呈现器332、文件下载模拟器334、文件下载事件处理程序336、web应用340、流程图200、400、500、600、700、800、900、1000、1100、1200中的任何一个或多个(包括其任何步骤)和/或本文所述的进一步实施例。程序数据1336可以包括下载的文件314和/或本文所描述的其他实施例。
91.用户可以通过诸如键盘1338和指点设备1340的输入设备将命令和信息输入到计算设备1300中。其他输入设备(未示出)可以包括麦克风、操纵杆、游戏板、卫星天线、扫描仪、触摸屏和/或触摸板、用于接收语音输入的语音识别系统、用于接收姿势输入的姿势识别系统等。这些和其他输入设备通常通过耦合到总线1306的串行端口接口1342连接到处理器电路1302,但是可以通过其他接口连接,诸如并行端口、游戏端口或通用串行总线(usb)。
92.显示屏1344还经由诸如视频适配器1346的接口连接到总线1306。显示屏1344可以在计算设备1300的外部,或者可以被并入计算设备1300中。显示屏1344可以显示信息,并且是用于接收用户命令和/或其他信息(例如,通过触摸、手指手势、虚拟键盘等)的用户界面。除了显示屏1344之外,计算设备1300还可以包括其他外围输出设备(未示出),诸如扬声器和打印机。
93.计算设备1300通过适配器或网络接口1350、调制解调器1352或者用于在网络之上建立通信的其他装置连接到网络1348(例如,互联网)。如图13所示,调制解调器1352可以是内部的或外部的,可以经由串行端口接口1342连接到总线1306,或者可以使用包括并行接口的另一接口类型连接到总线1306。
94.如本文所使用的,术语“计算机程序介质”、“计算机可读介质”和“计算机可读存储
介质”用于指代物理硬件介质,诸如与硬盘驱动器1314相关联的硬盘、可移动磁盘1318、可移动光盘1322、其他物理硬件介质,诸如ram、rom、闪存卡、数字视频盘、zip盘、mem、基于纳米技术的存储设备以及其他类型的物理/有形硬件存储介质。这样的计算机可读存储介质不同于通信介质并且不与通信介质重叠(不包括通信介质)。通信介质在诸如载波的调制数据信号中体现计算机可读指令、数据结构、程序模块或其他数据。术语“调制数据信号”是指以编码信号中的信息的方式设置或改变其一个或多个特性的信号。作为示例而非限制,通信介质包括诸如声学、rf、红外和其他无线介质的无线介质,以及有线介质。实施例还针对这样的通信介质,其与针对计算机可读存储介质的实施例分开并且不重叠。
95.如上所述,计算机程序和模块(包括应用程序1332和其他程序1334)可以存储在硬盘、磁盘、光盘、rom、ram或其他硬件存储介质上。这样的计算机程序也可以经由网络接口1350、串行端口接口1342或任何其他接口类型来接收。当由应用执行或加载时,这样的计算机程序使得计算设备1300能够实现本文所讨论的实施例的特征。相应地,这样的计算机程序表示计算设备1300的控制器。
96.实施例还涉及包括存储在任何计算机可读介质上的计算机代码或指令的计算机程序产品。这样的计算机程序产品包括硬盘驱动器、光盘驱动器、存储器设备分组、便携式存储器棒、存储器卡和其他类型的物理存储硬件。
97.iv.附加示例和优点
98.在实施例中,一种在服务器中用于代表客户端浏览器经由服务器的隔离浏览器下载文件的系统包括:一个或多个处理器;以及一个或多个存储器设备,其存储将由一个或多个处理器执行的程序代码,程序代码包括:隔离浏览器控制器,其被配置为:从隔离浏览器的浏览器引擎接收由浏览器引擎在服务器处对文件的下载被检测的指示,所下载的文件被保存在服务器处。隔离浏览器控制器还被配置为确定文件是否被许可由客户端浏览器下载。隔离浏览器控制器被配置为响应于确定文件未被许可由客户端浏览器下载,在服务器处删除下载的文件,并且向客户端浏览器传输策略事件。隔离浏览器控制器被配置为响应于确定文件被许可由客户端浏览器下载,向客户端浏览器传输下载的文件。
99.在前述系统的实施例中,隔离浏览器控制器还被配置为:将浏览器引擎配置为代表客户端浏览器听取文件下载事件。
100.在前述系统的实施例中,隔离浏览器控制器还被配置为:在从浏览器引擎接收由浏览器引擎在服务器处对文件的下载被检测的指示之前,从客户端浏览器接收针对文件的请求。
101.在前述系统的实施例中,服务器的浏览器引擎被配置为:传输针对文件的请求;以及响应于请求,从远程web服务器接收文件。
102.在前述系统的实施例中,隔离浏览器控制器还被配置为:基于针对以下至少一项的策略来确定文件是否被许可由客户端浏览器下载:用户、文件的文件名、文件扩展名、或者web应用的域。
103.在前述系统的实施例中,隔离浏览器控制器还被配置为向客户端浏览器流式传输文件。
104.在前述系统的实施例中,流式传输包括:在文件在服务器处被下载的同时,向客户端浏览器流式传输文件。
105.在前述系统的实施例中,隔离浏览器控制器还被配置为:经由独立于服务器的独立web服务器发布所下载的文件;向客户端浏览器传输指示文件已被下载的事件;以及控制客户端浏览器向独立web服务器发出请求,该请求用以发起通过http(超文本传输协议)向客户端浏览器进行文件的下载。
106.在前述系统的实施例中,隔离浏览器控制器还被配置为,在从浏览器引擎接收由浏览器引擎在服务器处对文件的下载被检测的指示之前:从客户端浏览器接收用以访问来自web服务器的web页面的请求;响应于请求,控制浏览器引擎访问来自web服务器的web页面,其中web页面包括到文件的、用于下载文件的链接;以及响应于在浏览器引擎处从web服务器对web页面的接收:控制浏览器引擎来呈现web页面;以及执行以下至少一项:将web页面转换为像素,并且向客户端浏览器流式传输像素;或者向客户端浏览器传输呈现指令以用于在客户端浏览器处呈现网页。
107.在实施例中,一种在服务器中用于代表客户端浏览器经由服务器的隔离浏览器下载文件的方法包括:从隔离浏览器的浏览器引擎接收由浏览器引擎在服务器处对文件的下载被检测的指示,所下载的文件被保存在服务器处。该方法还包括确定文件是否被许可由客户端浏览器下载。该方法还包括响应于确定文件未被许可由客户端浏览器下载,在服务器处删除下载的文件,以及向客户端浏览器传输策略事件。响应于确定文件被许可由客户端浏览器下载,向客户端浏览器传输下载的文件。
108.在前述方法的实施例中,浏览器引擎被配置为代表客户端浏览器听取文件下载事件。
109.在前述方法的实施例中,在从浏览器引擎接收由浏览器引擎在服务器处对文件的下载被检测到的指示之前,针对文件的请求从客户端浏览器被接收。
110.在前述方法的实施例中,针对文件的请求由浏览器引擎传输,并且响应于该请求文件从远程web服务器被接收。
111.在前述方法的实施例中,所述确定文件是否被许可下载到客户端浏览器包括基于针对以下至少一项的策略来确定下载是否被许可:用户、文件的文件名、文件扩展名、或者web应用的域。
112.在前述方法的实施例中,所述向客户端浏览器传输下载的文件包括向客户端浏览器流式传输文件。
113.在前述方法的实施例中,所述流式传输包括在文件在服务器处被下载的同时,向客户端浏览器流式传输文件。
114.在前述方法的实施例中,所述将向客户端浏览器传输下载的文件包括:经由独立于服务器的独立web服务器发布所下载的文件;向客户端浏览器传输指示文件已被下载的事件;以及控制客户端浏览器向独立web服务器发出请求,该请求用以发起通过http(超文本传输协议)向客户端浏览器进行文件的下载。
115.在前述方法的实施例中,该方法还包括,在从浏览器引擎接收由浏览器引擎在服务器处对文件的下载被检测到的指示之前:从客户端浏览器接收用以访问来自web服务器的web页面的请求;响应于请求,控制浏览器引擎访问来自web服务器的web页面,其中web页面包括到文件的、用于下载文件的链接。该方法还包括响应于在浏览器引擎处对来自web服务器的web页面的接收:控制浏览器引擎来呈现web页面;以及执行以下至少一项:将web页
面转换为像素,并且向客户端浏览器流式传输像素;或者向客户端浏览器传输呈现指令,以用于在客户端浏览器处呈现网页。
116.在实施例中,一种在服务器中用于代表客户端浏览器下载文件的远程浏览器隔离系统,包括一个或多个处理器;以及一个或多个存储器设备,其存储将由一个或多个处理器执行的程序代码。该程序代码包括服务器的远程隔离浏览器,该远程隔离浏览器被配置为:代表客户端浏览器访问web页面,将表示web页面的图像的像素流式传输给客户端浏览器,以及代表客户端浏览器从web服务器下载文件。该程序代码还包括隔离浏览器控制器,该隔离浏览器控制器被配置为:从远程隔离浏览器的浏览器引擎接收下载的文件被接收的指示,并且确定将文件下载到客户端浏览器是否被许可。响应于确定将文件下载到客户端浏览器未被许可,隔离浏览器控制器还被配置为向客户端浏览器传输下载阻止通知。响应于确定将文件下载到客户端浏览器被许可,隔离浏览器控制器还被配置为将下载的文件传输给客户端浏览器。
117.在前述系统的实施例中,隔离浏览器控制器还被配置为基于针对用户、文件的文件名、文件扩展名或web应用的域中至少一项的策略,来确定将文件下载到客户端浏览器是否被许可。
118.v.结论
119.虽然上面已经描述了本技术的各种实施例,但是应当理解,它们仅仅是通过示例而非限制的方式呈现的。相关领域的技术人员将理解,在不脱离所附权利要求中定义的本技术的精神和范围的情况下,可以在形式和细节上进行各种改变。因此,本技术的广度和范围不应受到任何上述示例性实施例的限制,而应仅根据以下权利要求及其等同来定义。
技术特征:
1.一种在服务器中的系统,用于代表客户端浏览器经由所述服务器的隔离浏览器下载文件,所述系统包括:一个或多个处理器;以及一个或多个存储器设备,其存储将由所述一个或多个处理器执行的程序代码,所述程序代码包括:隔离浏览器控制器,被配置为:从所述隔离浏览器的浏览器引擎接收由所述浏览器引擎在所述服务器处对所述文件的下载被检测的指示,所下载的所述文件被保存在所述服务器处;确定所述文件是否被许可由所述客户端浏览器下载;响应于确定所述文件未被许可由所述客户端浏览器下载:在所述服务器处删除所下载的所述文件,以及向所述客户端浏览器传输策略事件;以及响应于确定所述文件被许可由所述客户端浏览器下载,向所述客户端浏览器传输所下载的所述文件。2.根据权利要求1所述的系统,其中所述隔离浏览器控制器还被配置为:将所述浏览器引擎配置为代表所述客户端浏览器听取文件下载事件。3.根据权利要求1所述的系统,其中所述隔离浏览器控制器还被配置为:在所述从所述浏览器引擎接收由所述浏览器引擎在所述服务器处对所述文件的下载被检测的指示之前,从所述客户端浏览器接收针对所述文件的请求。4.根据权利要求1所述的系统,其中所述服务器的所述浏览器引擎被配置为:传输针对所述文件的请求;以及响应于所述请求,从远程web服务器接收所述文件。5.根据权利要求1所述的系统,其中所述隔离浏览器控制器还被配置为:基于针对以下至少一项的策略来确定所述文件是否被许可由所述客户端浏览器下载:用户;所述文件的文件名;文件扩展名;或者web应用的域。6.根据权利要求1所述的系统,其中所述隔离浏览器控制器还被配置为:向所述客户端浏览器流式传输所述文件。7.根据权利要求6所述的系统,其中所述流式传输包括:在所述文件在所述服务器处被下载的同时,向所述客户端浏览器流式传输所述文件。8.根据权利要求1所述的系统,其中所述隔离浏览器控制器还被配置为:经由独立于所述服务器的独立web服务器发布所下载的所述文件;向所述客户端浏览器传输指示所述文件已被下载的事件;以及控制所述客户端浏览器向所述独立web服务器发出请求,所述请求用以发起通过http(超文本传输协议)向所述客户端浏览器进行所述文件的下载。9.根据权利要求1所述的系统,其中所述隔离浏览器控制器还被配置为:在从所述浏览器引擎接收由所述浏览器引擎在所述服务器处对所述文件的下载被检
测的所述指示之前:从所述客户端浏览器接收用以访问来自web服务器的web页面的请求;响应于所述请求,控制所述浏览器引擎访问来自所述web服务器的所述web页面,其中所述web页面包括到所述文件的、用于下载所述文件的链接;以及响应于在所述浏览器引擎处对来自所述web服务器的所述web页面的接收:控制所述浏览器引擎以呈现所述web页面;以及执行以下至少一项:将所述web页面转换为像素,并且向所述客户端浏览器流式传输所述像素;或者向所述客户端浏览器传输呈现指令以用于在所述客户端浏览器处呈现所述网页。10.一种在服务器中的方法,用于代表客户端浏览器经由所述服务器的隔离浏览器下载文件,所述方法包括:从所述隔离浏览器的浏览器引擎接收由所述浏览器引擎在所述服务器处对所述文件的下载被检测的指示,所下载的所述文件被保存在所述服务器处;确定所述文件是否被许可由所述客户端浏览器下载;响应于确定所述文件未被许可由所述客户端浏览器下载,在所述服务器处删除所下载的所述文件,以及向所述客户端浏览器传输策略事件;以及响应于确定所述文件被许可由所述客户端浏览器下载,向所述客户端浏览器传输所下载的所述文件。11.根据权利要求10所述的方法,还包括:由所述浏览器引擎传输针对所述文件的请求;以及响应于所述请求,从远程web服务器接收所述文件。12.根据权利要求10所述的方法,其中所述向所述客户端浏览器传输所下载的所述文件包括:向所述客户端浏览器流式传输所述文件。13.根据权利要求10所述的方法,其中所述向所述客户端浏览器传输所下载的所述文件包括:经由独立于所述服务器的独立web服务器发布所下载的所述文件;向所述客户端浏览器传输指示所述文件已被下载的事件;以及控制所述客户端浏览器向所述独立web服务器发出请求,所述请求用以发起通过http(超文本传输协议)向所述客户端浏览器进行所述文件的下载。14.根据权利要求10所述的方法,还包括:在从所述浏览器引擎接收由所述浏览器引擎在所述服务器处对所述文件的下载被检测的所述指示之前:从所述客户端浏览器接收用以访问web服务器的web页面的请求;以及响应于所述请求,控制所述浏览器引擎访问来自所述web服务器的所述web页面,其中所述web页面包括到所述文件的、用于下载所述文件的链接;以及响应于在所述浏览器引擎处接收来自所述web服务器的所述web页面:控制所述浏览器引擎以呈现所述web页面;以及
执行以下至少一项:将所述web页面转换为像素,并且向所述客户端浏览器流式传输所述像素;或者向所述客户端浏览器传输呈现指令以用于在所述客户端浏览器处呈现所述网页。15.一种计算机可读介质,其上记录有计算机程序逻辑,包括:用于使处理器能够执行权利要求10至14中任一项的计算机程序逻辑。
技术总结
文件被使得能够经由RBI服务器的隔离浏览器代表客户端浏览器从web服务器被下载。隔离浏览器引擎检测文件下载并且通知隔离浏览器控制器。隔离浏览器控制器确定文件下载是否被许可。响应于确定文件下载未被许可,文件在RBI服务器处被删除,并且策略事件被传输给客户端浏览器。响应于确定文件下载被许可,文件被传输给客户端浏览器。文件可以被流式传输给客户端浏览器,或者其可以经由独立web服务器被发布,并且通知被传输给客户端浏览器。客户端浏览器被控制为向独立web服务器发出请求,以将文件下载到客户端浏览器。文件下载到客户端浏览器。文件下载到客户端浏览器。
技术研发人员:G
受保护的技术使用者:微软技术许可有限责任公司
技术研发日:2021.11.23
技术公布日:2023/8/14
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
