CN102282565A - 用于隐私保护的具有双脚本引擎的浏览器 - Google Patents

用于隐私保护的具有双脚本引擎的浏览器 Download PDF

Info

Publication number
CN102282565A
CN102282565A CN2010800048956A CN201080004895A CN102282565A CN 102282565 A CN102282565 A CN 102282565A CN 2010800048956 A CN2010800048956 A CN 2010800048956A CN 201080004895 A CN201080004895 A CN 201080004895A CN 102282565 A CN102282565 A CN 102282565A
Authority
CN
China
Prior art keywords
script
script engine
engine
special
public
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2010800048956A
Other languages
English (en)
Other versions
CN102282565B (zh
Inventor
M.P.F.弗肖尔
W.德斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips Electronics NV
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Koninklijke Philips Electronics NV filed Critical Koninklijke Philips Electronics NV
Publication of CN102282565A publication Critical patent/CN102282565A/zh
Application granted granted Critical
Publication of CN102282565B publication Critical patent/CN102282565B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L12/2816Controlling appliance services of a home automation network by calling their functionalities
    • H04L12/2818Controlling appliance services of a home automation network by calling their functionalities from a device located outside both the home and the home network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L12/2807Exchanging configuration information on appliance services in a home automation network
    • H04L12/2814Exchanging control software or macros for controlling appliance services in a home automation network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2105Dual mode as a secondary aspect
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources

Abstract

一种数据处理系统具有浏览器,该浏览器具有用于运行脚本的脚本引擎装置。该脚本引擎装置实现公共脚本引擎和专用脚本引擎。如果该脚本不需要访问该系统处的预定资源,则该浏览器被配置为让该公共脚本引擎运行该脚本。如果该脚本需要访问该预定资源,则该浏览器被配置为让该专用脚本引擎运行该脚本。仅仅该专用脚本引擎具有用于使得该脚本能够访问该预定资源的接口。该脚本引擎装置被配置为阻止该专用脚本引擎将数据通信到公共脚本引擎或该数据处理系统外的未被批准的服务器。

Description

用于隐私保护的具有双脚本引擎的浏览器
技术领域
本发明涉及包括具有用于运行脚本的脚本引擎装置的运行时间环境的数据处理系统、涉及包括脚本引擎装置的运行时间环境、涉及包括计算机可运行指令的计算机程序产品、以及涉及表示包括运行控制指示的脚本的数据结构。
背景技术
联网的电子设备的使用已经变得越来越流行。在家庭网络领域中,提供远程用户接口用于UPnP(通用即插即用)网络中的消费电子(CE)设备。远程用户接口使得用户能够经由UPnP家庭网络远程控制其它的UPnP设备上的应用,并且还使得用户能够使用连接到因特网的CE设备与因特网服务交互。这样的因特网服务的示例是用户可以从其下载内容信息(诸如电影)的因特网服务。对于有关UPnP的更多背景,参见例如WO 2005/002139。
考虑涉及的因特网服务的众多供应商、不同类型的服务和众多的消费设备供应商,最好尽可能将通信协议和用户接口标准化以便为用户提供最好的体验。
一个这样的标准是CEA-2014(也称为Web4CE),消费电子协会(CEA)标准。例如参见“Web4CE : Accessing Web-based Applications on Consumer Devices”,W. Dees和P. Shrubsole,WWW 2007/ Poster Paper,主题:Systems,1303-1304页。该标准对于UPnP网络和因特网上的远程用户接口指定了基于网络的协议和基于XHTML的内容格式(称为CE-HTML)。CE-HTML基于普通的开放因特网语言,诸如Javascript 1.5、XHTML 1.0和CSS TV Profile 1.0。CE-HTML对于交互服务指定了内容格式和脚本语义,并且定义了将托管和呈现那些服务的浏览器环境。CE-HTML的当前版本的标准化主要在两个标准化体中驱动向前,即在消费电子协会(CEA)和开放IPTV论坛(OIPF)中。CEA-2014具有两个主要应用:第一它允许消费者通过UPnP家庭网络远程控制其它的UPnP设备上的应用。第二它允许消费者使用连接到因特网的消费设备来与因特网服务或基于网络的应用交互。用户交互可以仅仅使用远程控制、包含兼容CEA-2014的浏览器的设备(例如,媒体适配器、TV或移动电话)的键或触摸屏而发生。
通常,网络浏览器用来以HTML格式呈现电子文档,但是已经开发了专用语言的主机来经由嵌入在该HTML文档中的可运行内容控制浏览器的操作。可运行内容向浏览器添加了例如交互性和自动化。这些专用语言的示例是:ECMAScript,一种表面上类似于Java的通用程序脚本语言;层叠样式表(CSS),其使得能够从内容中提取样式元数据;XML,可以用于内容与样式元数据结合,作为HTML的替换方式;和XSLT,一种将XML内容变换成新的形式的表现语言。技术已经演变得包括XML和JavaScript脚本的组合以改善用户对响应性的主观印象。文档对象模型标准保证了所有浏览器以可预测的方式对相同的JavaScript作出响应(来源:Wikipedia)。此外,浏览器环境可以由插件扩展以显示外来内容(诸如,Adobe Flash)和/或与之交互。外来内容可以是可视的或不可视的并且可以提供可以由脚本引擎使用的脚本API。因此,网络浏览器提供用于网络应用并且用于运行嵌入在电子文档中的(例如,从服务器下载的)脚本的客户方运行时间环境。对于有关脚本的更多背景,同样参见例如WO 2006/106414。
嵌入在电子文档中的脚本可能被文档供应者滥用以篡改该文档被下载于其上的系统或获得关于系统的用户的隐私敏感信息。也就是说,运行在下载的文档中接收的脚本可能妨碍系统的安全和用户的隐私。
V. Anupam和A. Mayer的论文“Secure Web scripting”,Internet Computing IEEE Vol.2, issue 6, Nov/Dec 1998,pp. 46-55讨论了明确的安全模型。建议的模型已被实现用于Mozilla浏览器源代码中的JavaScript。它由“安全的”翻译器并且基于三个基本构成块实现:访问控制、上下文的独立性和信赖管理。访问控制调节脚本可以访问用户的机器上的什么数据以及以什么模式访问。上下文的独立性保证了运行在不同的上下文中(例如,同时在不同的浏览器窗口中或顺序地在相同的浏览器窗口中)的两个脚本不能任意访问彼此的数据。信赖管理调节在同时运行在不同的上下文中的脚本当中如何建立和终止信赖。不同的用户需要不同程度的隐私和安全,当与网络服务器交互时其转变为不同程度的灵活性。这些差别可以用不同的、用户选择的安全策略表示。选择的安全策略为脚本提供填充单元。通过将名称空间分割成不可访问的、只读和可写的项,访问控制保证了在浏览的同时脚本仅仅能访问浏览器和窗口相关数据的不危害用户的隐私的那些部分。该安全策略还调节对外部接口的访问。此外,上下文的独立性保证了在不同的上下文中的脚本当中不存在“隐藏通道”。例如,如果可写的项在上下文改变期间存留(如当前JavaScript中的情况那样),则它可以用作可访问协作网站的、用户不可见的(虽然不持久的)“cookie”。如果第二上下文处于第一上下文的访问控制列表(ACL)中,则由用户在某一窗口的第一上下文中提供的数据(例如,通过在此上下文的HTML文档中填表)仅仅可用于第二上下文中的脚本。但是,任何其它上下文中的脚本不能访问此数据。
上述WO2006/106414讨论了具有脚本对象的域安全。此公开公开了一种提供具有脚本对象的域安全的方法。该方法包括:当具有第一拥有者的第一脚本对象试图访问具有第二拥有者的第二脚本对象时,产生异常;对第二拥有者产生询问对第二脚本对象的访问权限的授予的对话;以及执行是否授予第一脚本对象对第二脚本对象的访问权限的指令。该指令响应于对第二拥有者产生的对话。关于术语“拥有者”:电子文档的拥有者是发布该文档的域。表示本地资源(例如,客户端数据库或文件)的任何对象的拥有者是本地用户。如已知的,在此上下文之内的例外是发生改变软件指令的运行的正常流程的状况。被设计用于处理异常的计算机代码被称为“异常处理器”。
WO 2005/031568涉及通过网络浏览器在相同的用户界面中呈现远程和本地服务和信息。网络浏览器包含ECMAScript引擎。此引擎由通过ECMAScript扩展库与设备本机环境通信的ECMAScript扩展模块(核心JavaScript语言的标准化的版本)扩展。这允许ECMAScript环境被扩展有以本机代码实现的新的类和方法(有点像Java中的Java本机接口(Java Native Interface, JNI))。ECMAScript引擎和ECMAScript扩展模块可以被有条件地编译成可能在任何软件平台上的网络浏览器的版本。一旦网络浏览器的版本已被创建为使得能够实现ECMAScript扩展功能,就可以通过将专门编写的ECMAScript扩展库与指定哪些网页将能够访问该扩展的许可文件一起放在电子设备上的某一目录中,来扩展ECMAScript环境。出于安全的原因,该文件同样重要。
发明内容
CE公司、网络运营商和服务供应商当前正在开发将IPTV(因特网协议电视)和基于交互式网络的服务引入连接的电视的标准。在此背景内,本发明人已经考虑了允许由服务供应商在因特网上提供的服务实际控制家庭网络中的UPnP设备的情况。本发明人已经特别考虑了隐私的问题。
基于它们的发现,本发明人提倡安装安全性系统以便保证第三方服务在它们有权去做时仅仅控制家庭内网络功能。本发明人此外提倡通过避免第三方服务可能被滥用以通过与家庭内网络中的设备的交互来获得隐私敏感信息,来保证维持最终用户的隐私。
因此本发明人建议使用运行时间环境模型,例如浏览器、操作系统或Java虚拟机或修改现有运行时间环境模型,其解决安全和隐私问题二者,满足为了经由CE-HTML控制UPnP设备而指定的全套要求,并且支持由来自于(第三方)服务供应商的脚本控制家庭网络中的UPnP设备。
本发明的实施例基于为浏览器提供双脚本引擎(或提供具有两个不同的模式的脚本引擎的两个单独的实例)以便实现下列属性。提供公共脚本引擎,其实现当前主流浏览器(包括XMLHttpRequest脚本对象)的脚本引擎的完整功能并且提供对将数据(包括例如被编码为串的脚本)从公共脚本引擎通信到专用脚本引擎的脚本支持。提供专用脚本引擎以实现当前主流浏览器的脚本引擎的完整功能,其另外支持可以用于访问隐私敏感功能的扩展的脚本API,诸如上述用于控制家庭网络中的UPnP设备的脚本API。专用脚本引擎不提供对与公共脚本引擎的数据通信的脚本支持,并且例如通过禁止到家庭网络外的未被批准的服务器的XMLHttpRequest调用来阻止到家庭网络外的共享存储器、其它程序、或未被批准的服务器的通信。不存在事件从一个脚本引擎到另一个脚本引擎的传播。
到家庭网络外的服务器的通信的批准可以基于用户的每事件批准和/或用户和/或运行时间环境的开发者/部署者的预先(例如,每服务器、每域等等)批准而发生。预先批准可以通过运行时间环境的配置(例如,通过维持本地或远程存储的免除对来自于专用脚本引擎的数据通信的限制的服务器或服务器域的列表)获得或间接地从与用户、外部服务器和/或从其获得脚本的数据源有关的安全简档或证书导出。
更具体地说,本发明的实施例涉及包括具有用于运行脚本的脚本引擎装置的运行时间环境的数据处理系统(例如,家庭网络)。运行时间环境包括例如浏览器、Java虚拟机、操作系统等等。脚本引擎装置实现公共脚本引擎和专用脚本引擎。运行时间环境被配置为,如果脚本不需要访问系统中的预定资源,则由公共脚本引擎运行脚本,以及如果脚本需要访问该预定资源,则由专用脚本引擎运行脚本。该预定资源包括例如超出正常的浏览器沙盒的范围的数据处理系统的硬盘驱动器或另一个主存储器或UPnP家庭网络上的数据。仅仅专用脚本引擎具有用于使得脚本能够访问该预定资源的接口(例如,脚本应用程序接口或API)。脚本引擎装置被配置为阻止专用脚本引擎将数据通信到公共脚本引擎或数据处理系统外的服务器,除非这样的通信已被批准或者通常到服务器的通信已被批准。不存在事件从一个脚本引擎到另一个脚本引擎的传播。
因此,如果脚本由公共脚本引擎运行,则脚本不能访问资源,因为它不具有适当的API。如果脚本由专用脚本引擎运行,则它确实能访问该预定资源。但是,脚本不能使得从该预定资源检索出的数据通信到公共脚本引擎或外部服务器,除非例如由于缺乏用于这些目的的适当的接口或拒绝使用这些接口来通信到未被批准的外部服务器的请求而被批准。结果,保证了在预定资源处的数据的隐私。
在本发明的实施例中,脚本引擎装置通过具有两个可用的脚本引擎来实现公共脚本引擎和专用脚本引擎,每个脚本引擎具有上面列出的有关属性。例如,专用脚本引擎可以被实现为例如对浏览器的支持XHTML和CSS的插件和缺乏将数据通信到未被批准的外部服务器、共享存储器或公共脚本引擎的任何接口的特殊的专用ECMAScript引擎实例。浏览器的ECMAScript引擎可以用作公共脚本引擎。如同已知的,插件可以用于向现有软件添加API。可替换地,脚本引擎装置包括有选择地可配置为两个操作模式(公共模式和专用模式)之一的脚本引擎。在公共模式中,脚本引擎就像它是公共脚本引擎一样工作,以及在专用模式中,脚本引擎就像它是专用脚本引擎一样工作。
选择公共或专用脚本引擎中的哪一个来使得运行脚本的过程可以用各种方式实现。
在第一方式中,脚本具有文件名扩展,其指示是否让它运行在专用脚本引擎上。文件名扩展由运行时间环境翻译,该运行时间环境于是确定将调用专用和公共脚本引擎中的哪一个。例如,在HTML文件中,通过它的包括脚本的文件名扩展的路径来引用脚本。如果脚本是Javascript,则根据脚本需要被运行的上下文,它可以具有文件名扩展“.js”或“.xjs”。如果文件名扩展是“.js”,则运行时间环境将此翻译为公共脚本引擎是运行此脚本的脚本引擎。如果文件名扩展是“.xjs”,则运行时间环境将此翻译为专用脚本引擎将运行此脚本。
在第二方式中,脚本被嵌入到另一个可运行文件中或被另一个可运行文件引用,该另一个可运行文件具有明确的声明,指定专用脚本引擎将被调用以便运行脚本。该明确的声明可以包括说明声明,例如具有指定哪一个脚本引擎将用来翻译脚本的类型属性的XHTML脚本元素,或专用过程声明,例如脚本之内的“switchToPrivateMode ()”或“privateScript.run (script)”。
在第三方式中,脚本被嵌入到另一个可运行文件中的声明中或被该另一个可运行文件中的声明参考,该另一个可运行文件中的声明暗含地需要调用专用脚本引擎以便运行嵌入的或参考的脚本。此声明可以是例如指定与该预定资源有关的MIME类型的HTML <object>元素。例如,假定与UPnP家庭网络的控制有关的运行时间环境插件由MIME类型"application/upnpcontrol"标识,则包括此MIME类型的HTML对象元素的可运行文件暗含地指定该嵌入的或参考的脚本将被在该专用脚本引擎中运行。另一种暗含地指定需要调用专用脚本引擎的声明包括对仅仅在专用脚本引擎的上下文中支持的函数或方法的调用。例如,假定"readHDDContents()"仅仅由专用引擎在预定资源上支持,则文件中的声明“readHDDContents”的出现暗含地用信号通知需要在专用引擎中执行文件的进一步运行。
本发明的以上实施例涉及数据处理系统。这些实施例商业上与设备制造者、PC制造商、机顶盒制造商等等有关。
本发明的另一个实施例涉及具有用在这样的数据处理系统中的脚本引擎装置的运行时间环境。该运行时间环境包括例如浏览器、操作系统或Java虚拟机。这样的实施例商业上与软件供应者有关。
本发明的另一个实施例涉及包括计算机可运行指令的计算机程序产品,该计算机可运行指令在运行时被设置为在数据处理系统的工作使用期间实现该运行时间环境。该软件可以在诸如半导体存储器(例如,USB棒)上之类的数据载体或光盘上提供。该软件还可以作为经由因特网的下载提供。
本发明的又一个实施例涉及表示在以上说明的数据处理系统处运行的脚本的数据结构。如同已知的,数据结构指示数据元素之间的物理或逻辑关系,被设计用于支持特定的数据处理功能。在这种意义上,本发明中的脚本表示数据结构。本发明的数据结构包括运行控制指示以便使得能够在用于运行脚本的公共脚本引擎和专用脚本引擎之间选择。如上所述,运行控制指示包括在例如脚本的文件名扩展、其中嵌入要在专用脚本引擎处运行的脚本的另一个可运行文件中的明确声明、或暗含地用信号通知需要在专用脚本引擎中运行嵌入的或参考的脚本的另一个可运行文件中的声明内。此实施例商业上与将访问数据处理系统处的隐私敏感资源的这样的脚本的供应商有关。
附图说明
通过举例并且参考附图来进一步详细说明本发明,其中图1是本发明中的系统的框图。
具体实施方式
网络浏览器通常用于以HTML格式呈现电子文档,但是已经开发了专用语言的主机来经由嵌入在该HTML页中的可运行内容控制浏览器的操作。可运行内容向浏览器添加了例如交互性和自动化。这些专用语言的示例是:ECMAScript,一种表面上类似于Java的通用程序脚本语言;层叠样式表(CSS),其使得能够从内容中提取样式元数据;XML,可以用于内容与样式元数据结合,作为HTML的替换方式;和XSLT,一种将XML内容变换成新的形式的表现语言。技术已经演变得包括XML和JavaScript脚本的组合以改善用户对响应性的主观印象。文档对象模型标准保证了所有浏览器以可预测的方式对相同的JavaScript作出响应(来源:Wikipedia)。因此,网络浏览器提供用于网络应用并且用于运行嵌入在电子文档中的(例如,从服务器下载的)脚本的客户方环境。对于有关脚本的更多背景,同样参见例如上述的WO 2006/106414。
嵌入在HTML文档中的脚本可能被文档供应商滥用以篡改该文档被下载于其上的系统或获得关于系统的用户的隐私敏感信息。
图1是本发明中的系统100的框图。系统100包括数据处理系统102,这里还称为客户端102,其具有用于经由数据网络108与服务器106数据通信的网络接口104。客户端102例如是个人计算机、机顶盒、家庭网络等等。客户端102包括运行时间环境110,例如浏览器、操作系统或Java虚拟机。运行时间环境110具有用于运行脚本的脚本引擎装置。例如,运行时间环境110包括浏览器,并且脚本在例如由服务器106提供或经由USB棒或经由PC提供的电子HTML文档中接收。脚本引擎装置实现公共脚本引擎112和专用脚本引擎114。如果脚本不需要访问客户端102处的预定资源,例如超出硬盘驱动器(HDD)124或UPnP家庭网络126上的正常的(浏览器)沙盒的范围的数据,则运行时间环境110被配置为让脚本由公共脚本引擎112运行。如果脚本需要访问预定资源124或126,则运行时间环境110被配置为让脚本由专用脚本引擎114运行。
存在几种实现此选择性的运行的方式,如下进一步讨论的,但是目前假定运行时间环境110被这样配置。
如果脚本不需要访问超出正常的(浏览器)沙盒的范围的HDD 124或UPnP家庭网络126上的数据,则脚本由脚本引擎112运行。例如,指定在浏览器中呈现的网页中的网络资源的动画的脚本不需要访问用于此目的的HDD 124或UPnP家庭网络126。
如果脚本确实需要访问超出正常的(浏览器)沙盒的范围的HDD 124上的数据或UPnP家庭网络126上的数据,则脚本由专用脚本引擎114运行。例如,脚本扫描和管理存储在家庭网络中的UPnP媒体服务器上的多媒体内容。
公共脚本引擎112不具有到与HDD 124上的超出正常的浏览器沙盒的范围的数据交互的软件应用122或与UPnP家庭网络126交互的UPnP控制点128的接口,例如脚本应用程序接口(API)。在另一方面,专用脚本引擎114确实具有到软件应用122的可以访问HDD 124的脚本API 120和可以访问UPnP家庭网络126的脚本API 130。专用脚本引擎114阻止与服务器106的数据通信,除非到服务器106的通信已被批准,而公共脚本引擎确实具有不进行此区分的通信接口(未示出)。
到家庭网络外的服务器的通信的批准可以基于用户的每事件批准和/或用户和/或运行时间环境的开发者/部署者的预先(例如,每服务器、每域等等)批准而发生。预先批准可以通过运行时间环境的配置(例如,通过维持本地或远程存储的免除对来自于专用脚本引擎的数据通信的限制的服务器或服务器域的列表)获得或间接地从与用户、外部服务器和/或从其获得脚本的数据源有关的安全简档或证书导出。
图1的图示出了其中公共脚本引擎112和专用脚本引擎114被实现为分开的脚本引擎的情况。例如,专用脚本引擎114被实现为例如对浏览器的支持XHTML和CSS的插件和阻止未被批准的到外部服务器106的数据通信并且缺乏将数据通信到诸如cookies之类的共享存储器或公共脚本引擎112的任何接口的特殊的专用ECMAScript引擎实例。浏览器的ECMAScript引擎可以用作公共脚本引擎112。如同已知的,插件可以用于向现有软件添加API。为完整起见,cookies被认为是用于来源于相同的域的服务的在(浏览器)沙盒的范围内的持久的共享存储器。
在本发明的实施例中,由运行时间环境110接收的脚本被默认路由到公共脚本引擎112用于被运行,除非运行时间环境可以例如通过脚本的文件名扩展或脚本的分析,来确定脚本引擎112和114中将用于运行脚本的适当的一个。如果例如脚本包括请求在专用脚本引擎114中运行的明确声明,则公共脚本引擎112被配置为有条件地将脚本转发到专用脚本引擎114。运行时间环境110翻译该文件名扩展并且基于它确定将在脚本引擎112和114中的哪一个中运行该脚本。
例如,在HTML文件中,通过它的包括脚本的文件名扩展的路径来引用脚本。如果脚本是Javascript,则它可以具有文件名扩展“.js”或“.xjs”。如果文件名扩展是“.js”,则运行时间环境110确定公共脚本引擎112是运行此脚本的脚本引擎。如果文件名扩展是“.xjs”,则运行时间环境110将此翻译为专用脚本引擎114将运行该脚本,并且将该脚本转发到专用脚本引擎114以运行。运行时间环境110可以使用此作为切换模式的触发器,以使得由HTML文件(包括之前下载的.js文件)包括和/或引用的所有脚本将在专用脚本引擎114中而不是公共脚本引擎112中运行。
作为另一个示例,脚本被嵌入到另一个脚本中,该另一个脚本具有明确的声明,指定专用脚本引擎112将被调用以便运行嵌入的脚本。公共脚本引擎112运行另一个脚本并且终究得出该明确的声明。公共脚本引擎112被配置为在经由引擎112和114之间的单向接口(未示出)运行该明确的声明时将嵌入的脚本经由单向接口转发到专用脚本引擎114,参见上文。也就是说,使得专用脚本引擎能够将数据通信到专用脚本引擎114,但是不使得专用脚本引擎114能够将数据通信到公共脚本引擎114。脚本引擎112和114之间的单向数据通信接口可以通过利用允许运行在公共脚本引擎112中的脚本向该插件发送数据的数据通信方法扩展插件接口来实现。
作为另一个示例,表示脚本的对象(在面向对象的程序设计的上下文中)用它的类型或类来指定。在脚本中宣告的类型指示它将使用HDD 124还是UPnP家庭网络126。如果类型指示脚本是将运行在UPnP家庭网络126上的或使用到UPnP家庭网络126的API 130的应用,则公共脚本引擎112将脚本经由单向接口转发到专用脚本引擎114以便运行脚本。这是因为类型或类被预定或预配置为是隐私敏感的,并且因此暗含地需要调用专用脚本引擎114以便运行嵌入的或参考的脚本。此声明可以是例如指定与该预定资源有关的MIME类型的HTML对象元素。例如,假定与UPnP家庭网络的控制有关的运行时间环境插件由MIME类型"application/upnpcontrol"标识,则包括此MIME类型的HTML<object>元素的可运行文件暗含地指定该嵌入的或参考的脚本将被在该专用脚本引擎114中运行。另一种类型的暗含地指定需要调用专用脚本引擎114的声明包括对仅仅在专用脚本引擎114的上下文中支持的函数或方法的调用。例如,假定"readHDDContents()"仅仅由专用引擎114在预定资源上支持,则文件中的声明“readHDDContents”的出现暗含地用信号通知需要在专用脚本引擎114中执行文件的进一步运行。
因此,由于脚本引擎112和114的数据通信能力的特异性,除非这样的通信已被批准,否则保留在客户端102的资源124或126处的隐私敏感数据不能经由外部供应者提供的脚本(例如在从服务器106检索的且在浏览器110中呈现的电子html文档中)对服务器106可用。如果脚本由引擎112运行,则不存在对预定资源124和126的访问。如果脚本由引擎114运行,则脚本能访问预定资源124和126。但是,由于用于此目的的接口仅仅局限于到被批准的服务器的通信这一事实,因此没有办法将从资源124和126检索的数据通信到服务器106,除非这样的通信已被批准。
在以上示例中,脚本引擎112和114已被实现为两个单独的引擎。作为可替换方式,脚本引擎112和114通过有选择地可配置为两个操作模式(公共模式和专用模式)之一的单个脚本引擎来实现。在公共模式中,脚本引擎就像它是公共脚本引擎112一样工作,以及在专用模式中,脚本引擎就像它是专用脚本引擎114一样工作。第二可替换方式是将公共和专用脚本引擎112和114实现为同一脚本引擎的逻辑上单独的实例。例如,假定主流浏览器用作具有支持对来源于不同的域的脚本的不同许可的授予的安全性系统的运行时间环境110。然后,公共脚本引擎112可以被实现为浏览器的正常的脚本引擎,其中添加朝向专用脚本引擎114的单向通信接口。专用脚本引擎114可以通过配置浏览器的脚本引擎,以使得需要在专用脚本引擎114中运行的脚本实际上在特定域的上下文中运行、而不管外部脚本来源于的域如何来实现。授予运行在此域之内的脚本通过浏览器插件控制预定资源的特权,但是阻止其将数据通信到公共脚本引擎112或数据处理系统102外的服务器(诸如服务器106),除非这样的通信已被批准。

Claims (7)

1.一种数据处理系统(102),其包括具有用于运行脚本的脚本引擎装置的运行时间环境(110),其中:
所述脚本引擎装置实现公共脚本引擎(112)和专用脚本引擎(114);
所述运行时间环境被配置为:如果脚本不需要访问所述系统处的预定资源(124;126),则使所述公共脚本引擎运行所述脚本;
所述运行时间环境被配置为:如果脚本需要访问所述预定资源,则使所述专用脚本引擎运行所述脚本;
仅仅所述专用脚本引擎具有用于使得所述脚本能够访问所述预定资源的接口(120;130);以及
所述脚本引擎装置被配置为阻止所述专用脚本引擎将数据通信到公共脚本引擎或所述数据处理系统外的服务器(106),除非这样的通信已被批准。
2.根据权利要求1所述的数据处理系统,其中所述脚本引擎装置包括作为所述公共脚本引擎工作的第一脚本引擎和作为所述专用脚本引擎工作的第二脚本引擎。
3.根据权利要求1所述的数据处理系统,其中所述脚本引擎装置包括可配置的脚本引擎,以用于当被配置在第一模式时作为所述公共脚本引擎工作并且用于当被配置在第二模式时作为所述专用脚本引擎工作。
4.根据权利要求1所述的数据处理系统,其中所述运行时间环境包括浏览器、Java虚拟机和操作系统中的至少一个。
5.一种运行时间环境(110),其具有在根据权利要求1所述的数据处理系统中使用的脚本引擎装置。
6.一种包括计算机可运行指令的计算机程序产品,所述计算机可运行指令在运行时被设置为在数据处理系统的工作使用期间实现根据权利要求1所述的运行时间环境。
7.一种数据结构,其表示用于被运行在根据权利要求1所述的数据处理系统中的脚本,其中所述数据结构包括运行控制指示以便使得能够在用于运行所述脚本的公共脚本引擎和专用脚本引擎之间进行选择。
CN201080004895.6A 2009-01-19 2010-01-13 用于隐私保护的具有双脚本引擎的浏览器 Active CN102282565B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US14564609P 2009-01-19 2009-01-19
US61/145646 2009-01-19
US17280109P 2009-04-27 2009-04-27
US61/172801 2009-04-27
PCT/IB2010/050127 WO2010082161A1 (en) 2009-01-19 2010-01-13 Browser with dual scripting engine for privacy protection

Publications (2)

Publication Number Publication Date
CN102282565A true CN102282565A (zh) 2011-12-14
CN102282565B CN102282565B (zh) 2016-08-03

Family

ID=42027806

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201080004895.6A Active CN102282565B (zh) 2009-01-19 2010-01-13 用于隐私保护的具有双脚本引擎的浏览器

Country Status (8)

Country Link
US (1) US9258136B2 (zh)
EP (1) EP2387765B1 (zh)
JP (1) JP5676477B2 (zh)
KR (1) KR101786060B1 (zh)
CN (1) CN102282565B (zh)
BR (1) BRPI1004942B1 (zh)
RU (1) RU2556338C2 (zh)
WO (1) WO2010082161A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102842006A (zh) * 2012-07-09 2012-12-26 华为软件技术有限公司 扩展脚本对象的访问控制方法及其访问控制系统和终端
CN103268442A (zh) * 2013-05-14 2013-08-28 北京奇虎科技有限公司 一种实现安全访问视频网站的方法和装置
WO2014198118A1 (en) * 2013-06-09 2014-12-18 Tencent Technology (Shenzhen) Company Limited Method and device for protecting privacy information with browser
CN105893863A (zh) * 2015-11-30 2016-08-24 乐视致新电子科技(天津)有限公司 一种隐私信息保护方法及装置
CN109997143A (zh) * 2016-09-30 2019-07-09 迈克菲有限责任公司 敏感数据的安全共享

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8225061B2 (en) 2009-07-02 2012-07-17 Apple Inc. Method and apparatus for protected content data processing
US8689181B2 (en) 2010-11-23 2014-04-01 Axeda Corporation Scripting web services
US8464350B2 (en) * 2011-03-14 2013-06-11 International Business Machines Corporation System and method for in-private browsing
US10466989B2 (en) * 2011-09-02 2019-11-05 Microsoft Technology Licensing, Llc. Fast presentation of markup content having script code
US9015851B2 (en) * 2012-04-23 2015-04-21 Google Inc. Electronic book content protection
US9898445B2 (en) * 2012-08-16 2018-02-20 Qualcomm Incorporated Resource prefetching via sandboxed execution
US20140053064A1 (en) 2012-08-16 2014-02-20 Qualcomm Incorporated Predicting the usage of document resources
US9589149B2 (en) * 2012-11-30 2017-03-07 Microsoft Technology Licensing, Llc Combining personalization and privacy locally on devices
RU2584507C1 (ru) * 2014-12-19 2016-05-20 Закрытое акционерное общество "Лаборатория Касперского" Способ обеспечения безопасного выполнения файла сценария
US10671760B2 (en) * 2015-02-27 2020-06-02 Arash Esmailzadeh Secure and private data storage
WO2016175764A1 (en) 2015-04-28 2016-11-03 Microsoft Technology Licensing, Llc Operating system privacy mode
US10462145B2 (en) 2016-07-15 2019-10-29 The Directv Group, Inc. Method and apparatus for controlling access to custom browser functionality
US10481876B2 (en) 2017-01-11 2019-11-19 Microsoft Technology Licensing, Llc Methods and systems for application rendering
US10394584B2 (en) * 2017-12-18 2019-08-27 Atlassian Pty Ltd Native execution bridge for sandboxed scripting languages
US20220269774A1 (en) * 2021-02-19 2022-08-25 Capital One Services, Llc Methods, media, and systems for screening malicious content from a web browser

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6931546B1 (en) * 2000-01-28 2005-08-16 Network Associates, Inc. System and method for providing application services with controlled access into privileged processes
CN1744605A (zh) * 2004-08-30 2006-03-08 三星电子株式会社 能实现环球网服务的数字视/音频处理装置、方法及系统
US20070226773A1 (en) * 2006-03-21 2007-09-27 Novell, Inc. System and method for using sandboxes in a managed shell
CN101553771A (zh) * 2006-10-23 2009-10-07 奥多比公司 绘制超文本标记语言内容

Family Cites Families (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6317742B1 (en) * 1997-01-09 2001-11-13 Sun Microsystems, Inc. Method and apparatus for controlling software access to system resources
US6308275B1 (en) * 1998-07-10 2001-10-23 At Home Corporation Web host providing for secure execution of CGI programs and method of doing the same
JP3563619B2 (ja) * 1998-12-04 2004-09-08 株式会社東芝 アプリケーション機能指定装置及び記憶媒体
US6608634B1 (en) 1999-12-23 2003-08-19 Qwest Communications International, Inc. System and method for demonstration of dynamic web sites with integrated database without connecting to a network
US7051119B2 (en) * 2001-07-12 2006-05-23 Yahoo! Inc. Method and system for enabling a script on a first computer to communicate and exchange data with a script on a second computer over a network
US6978445B2 (en) * 2001-09-28 2005-12-20 Siebel Systems, Inc. Method and system for supporting user navigation in a browser environment
WO2003096669A2 (en) * 2002-05-10 2003-11-20 Reisman Richard R Method and apparatus for browsing using multiple coordinated device
US7401235B2 (en) * 2002-05-10 2008-07-15 Microsoft Corporation Persistent authorization context based on external authentication
US7343626B1 (en) * 2002-11-12 2008-03-11 Microsoft Corporation Automated detection of cross site scripting vulnerabilities
GB0227993D0 (en) 2002-12-02 2003-01-08 Ncr Int Inc A system and method for enabling communication between a web browser and a software agent infrastructure
KR101123155B1 (ko) 2003-06-30 2012-03-19 코닌클리케 필립스 일렉트로닉스 엔.브이. URI에 UPnP AV 미디어서버 객체ID 삽입
WO2005031568A1 (en) 2003-09-26 2005-04-07 Opera Software Asa Presenting remote and local information in a web browser
US7676560B2 (en) * 2003-10-24 2010-03-09 Microsoft Corporation Using URI's to identify multiple instances with a common schema
US7444678B2 (en) * 2003-10-28 2008-10-28 Aol Llc Securing resources from untrusted scripts behind firewalls
JP2005148977A (ja) 2003-11-13 2005-06-09 Canon Software Inc プログラム実行環境設定システムおよびプログラム提供サーバ装置およびクライアント装置および呼制御サーバ装置およびプログラム実行環境設定方法およびプログラムおよび記録媒体
US7401230B2 (en) * 2004-03-31 2008-07-15 Intel Corporation Secure virtual machine monitor to tear down a secure execution environment
US7546447B2 (en) * 2004-05-08 2009-06-09 Intel Corporation Firmware interface runtime environment protection field
US7908653B2 (en) * 2004-06-29 2011-03-15 Intel Corporation Method of improving computer security through sandboxing
US7831995B2 (en) * 2004-10-29 2010-11-09 CORE, SDI, Inc. Establishing and enforcing security and privacy policies in web-based applications
US7593980B2 (en) * 2004-11-30 2009-09-22 Cisco Technology, Inc. Application server system and method
US20060248537A1 (en) 2005-04-06 2006-11-02 Nokia Corporation System and method for domain security with script objects
US8078740B2 (en) * 2005-06-03 2011-12-13 Microsoft Corporation Running internet applications with low rights
US7707635B1 (en) * 2005-10-06 2010-04-27 Trend Micro Incorporated Script-based pattern for detecting computer viruses
US7836303B2 (en) * 2005-12-09 2010-11-16 University Of Washington Web browser operating system
KR101282117B1 (ko) * 2006-07-25 2013-07-03 삼성전자주식회사 공유 네트워크 환경에서 범용 플러그 앤 플레이 서비스를위한 장치 및 방법
US8353031B1 (en) * 2006-09-25 2013-01-08 Symantec Corporation Virtual security appliance
US8490117B1 (en) * 2006-10-23 2013-07-16 Adobe Systems Incorporated Bridging script engines
WO2008073618A2 (en) * 2006-11-06 2008-06-19 Devicevm, Inc. Instant on platform
US20080133722A1 (en) * 2006-12-04 2008-06-05 Infosys Technologies Ltd. Parallel dynamic web page section processing
US20080148298A1 (en) * 2006-12-18 2008-06-19 Palm, Inc. System and Methods for Providing Granular Security for Locally Running Scripted Environments and Web Applications
US8484742B2 (en) * 2007-01-19 2013-07-09 Microsoft Corporation Rendered image collection of potentially malicious web pages
US20080189767A1 (en) * 2007-02-01 2008-08-07 Microsoft Corporation Accessing file resources outside a security boundary
US20080196046A1 (en) * 2007-02-09 2008-08-14 Novarra, Inc. Method and Apparatus for Providing Information Content for Display on a Client Device
EP1975830A1 (en) * 2007-03-30 2008-10-01 British Telecommunications Public Limited Company Distributed computer system
US8024790B2 (en) * 2007-04-11 2011-09-20 Trend Micro Incorporated Portable secured computing environment for performing online confidential transactions in untrusted computers
US8001551B2 (en) * 2007-04-24 2011-08-16 Microsoft Corporation Providing localized resources for client-side script execution
US8763115B2 (en) * 2007-08-08 2014-06-24 Vmware, Inc. Impeding progress of malicious guest software
US7748609B2 (en) * 2007-08-31 2010-07-06 Gemalto Inc. System and method for browser based access to smart cards
US8160247B2 (en) * 2007-09-27 2012-04-17 Adobe Systems Incorporated Providing local storage service to applications that run in an application execution environment
US8307443B2 (en) * 2007-09-28 2012-11-06 Microsoft Corporation Securing anti-virus software with virtualization
US7979909B2 (en) * 2007-12-03 2011-07-12 Wells Fargo Bank Application controlled encryption of web browser data
US8635701B2 (en) * 2008-03-02 2014-01-21 Yahoo! Inc. Secure browser-based applications
US8272059B2 (en) * 2008-05-28 2012-09-18 International Business Machines Corporation System and method for identification and blocking of malicious code for web browser script engines
US8108912B2 (en) * 2008-05-29 2012-01-31 Red Hat, Inc. Systems and methods for management of secure data in cloud-based network
US8250666B2 (en) * 2008-07-03 2012-08-21 Sap Ag Method and apparatus for improving security in an application level virtual machine environment
US8136158B1 (en) * 2008-07-21 2012-03-13 Google Inc. User-level segmentation mechanism that facilitates safely executing untrusted native code
US8413139B2 (en) * 2009-03-11 2013-04-02 Microsoft Corporation Programming model for application and data access and synchronization within virtual environments
US8505084B2 (en) * 2009-04-06 2013-08-06 Microsoft Corporation Data access programming model for occasionally connected applications
US8839138B1 (en) * 2009-12-21 2014-09-16 Symantec Corporation Systems and methods for transitioning between user interface environments

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6931546B1 (en) * 2000-01-28 2005-08-16 Network Associates, Inc. System and method for providing application services with controlled access into privileged processes
CN1744605A (zh) * 2004-08-30 2006-03-08 三星电子株式会社 能实现环球网服务的数字视/音频处理装置、方法及系统
US20070226773A1 (en) * 2006-03-21 2007-09-27 Novell, Inc. System and method for using sandboxes in a managed shell
CN101553771A (zh) * 2006-10-23 2009-10-07 奥多比公司 绘制超文本标记语言内容

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102842006A (zh) * 2012-07-09 2012-12-26 华为软件技术有限公司 扩展脚本对象的访问控制方法及其访问控制系统和终端
CN103268442A (zh) * 2013-05-14 2013-08-28 北京奇虎科技有限公司 一种实现安全访问视频网站的方法和装置
CN103268442B (zh) * 2013-05-14 2015-12-23 北京奇虎科技有限公司 一种实现安全访问视频网站的方法和装置
WO2014198118A1 (en) * 2013-06-09 2014-12-18 Tencent Technology (Shenzhen) Company Limited Method and device for protecting privacy information with browser
CN105893863A (zh) * 2015-11-30 2016-08-24 乐视致新电子科技(天津)有限公司 一种隐私信息保护方法及装置
CN109997143A (zh) * 2016-09-30 2019-07-09 迈克菲有限责任公司 敏感数据的安全共享

Also Published As

Publication number Publication date
US20110283363A1 (en) 2011-11-17
BRPI1004942A8 (pt) 2017-10-03
JP2012515390A (ja) 2012-07-05
JP5676477B2 (ja) 2015-02-25
WO2010082161A1 (en) 2010-07-22
RU2011134494A (ru) 2013-03-10
CN102282565B (zh) 2016-08-03
US9258136B2 (en) 2016-02-09
EP2387765A1 (en) 2011-11-23
KR101786060B1 (ko) 2017-10-16
BRPI1004942B1 (pt) 2020-04-07
BRPI1004942A2 (zh) 2017-08-08
RU2556338C2 (ru) 2015-07-10
KR20110117171A (ko) 2011-10-26
EP2387765B1 (en) 2018-05-23

Similar Documents

Publication Publication Date Title
CN102282565A (zh) 用于隐私保护的具有双脚本引擎的浏览器
US8291475B2 (en) Secure cross-domain communication for web mashups
EP2691907B1 (en) Methods and apparatus for blocking usage tracking
US8438636B2 (en) Secure and extensible policy-driven application platform
US8056092B2 (en) Method and apparatus for widget-container hosting and generation
CN104903860B (zh) 第三方应用脚本能力
US8931052B2 (en) Operation of mobile device as trusted mobile web client or trusted mobile web server
KR20110014164A (ko) 온라인 광고 서비스
KR20150119003A (ko) 제 3 자 애플리케이션 통신 에이피아이
US11537760B2 (en) Web application execution with secure elements
CN103036871B (zh) 浏览器应用插件支持装置和方法
WO2008141019A1 (en) Systems and methods for inter-domain messaging
US20130074160A1 (en) Method of controlling information processing system, computer-readable recording medium storing program for controlling apparatus
JP2011516943A (ja) クライアントによって生成された情報を表示する方法
KR101265164B1 (ko) 브랜딩을 위한 단축 url 브라우징 제공시스템, 그 제공방법, 및 웹 클라이언트
JP2006209568A (ja) 情報フィルタリング装置、情報フィルタリング方法、プログラムおよび記録媒体
US20090254631A1 (en) Defining clippable sections of a network document and saving corresponding content
KR101086166B1 (ko) 웹 기반의 어플리케이션 제어 시스템 및 방법

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant