CN101960446B - 基于安全浏览器的应用 - Google Patents

基于安全浏览器的应用 Download PDF

Info

Publication number
CN101960446B
CN101960446B CN200980107056.4A CN200980107056A CN101960446B CN 101960446 B CN101960446 B CN 101960446B CN 200980107056 A CN200980107056 A CN 200980107056A CN 101960446 B CN101960446 B CN 101960446B
Authority
CN
China
Prior art keywords
assembly
computer program
program code
code
user
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.)
Expired - Fee Related
Application number
CN200980107056.4A
Other languages
English (en)
Other versions
CN101960446A (zh
Inventor
劳埃德·T·海赖尔
大卫·B·格里格斯拜
戈登·杜兰德
史蒂芬·E·斯潘瑟
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.)
Altaba Inc
Original Assignee
Yahoo Inc
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 Yahoo Inc filed Critical Yahoo Inc
Publication of CN101960446A publication Critical patent/CN101960446A/zh
Application granted granted Critical
Publication of CN101960446B publication Critical patent/CN101960446B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Information Transfer Between Computers (AREA)
  • Storage Device Security (AREA)
  • Stored Programmes (AREA)

Abstract

提供了用于通过网络浏览器中的计算机程序代码来执行受限制的操作的技术,其中,如果接收到隐含的或明确的同意,则该代码被准许调用受限制的操作。这样的技术可以包括:生成针对计算机程序代码组件的风险评级,其中,该组件包括用于执行至少一个受限制的系统操作的至少一个组件操作;并且向用户提示对执行受限制的系统操作的许可,其中,该提示包括风险评级和对组件操作的描述。程序代码可以包括与调用网络浏览器插件的网页相关联的脚本代码,该网络浏览器插件进而调用受限制的系统操作。代码可以响应于经由网络浏览器接收到来自用户的输入来调用受限制的系统操作,其中,该输入用于产生与执行该操作相关联的动作,该动作隐含地同意执行该操作。

Description

基于安全浏览器的应用
相关申请的交叉引用
本申请要求于2008年3月2日提交的题为“Browser-BasedApplications and Interfaces Having Secure Access to Native Operating SystemFeatures”的申请No.61/067,872的优先权,该申请通过引用被整体结合于此。
技术领域
本申请一般地涉及在受限制的执行环境中执行用户提供的计算机程序代码,并且更具体地涉及使用户提供的计算机程序组件能够在诸如网络浏览器(Web browser)之类的受安全限制的执行环境中传播和执行。
背景技术
用于在网络浏览器中执行计算机程序代码的技术是公知的。网页可以包括当页面在浏览器(例如,Internet ExplorerTM浏览器、浏览器等)中被呈现给用户时将被执行的诸如JavaScriptTM之类的语言的代码。用诸如语言、语言和语言之类的编程语言实现的代码可以从诸如网站之类的因特网服务器下载,并由网络浏览器执行。一些类型的代码或数据,例如脚本或便携式文档格式(PDF,Portable DocumentFormat)文档可能不被浏览器本身支持,即,不可由浏览器本身执行,但是可以利用支持这样的专用文件类型的插件(plugin)对浏览器进行扩展。插件例如是由浏览器(或其它应用)调用的计算机程序代码模块,并且可以使用浏览器的特征来显示信息、接收输入、通过网络传送数据等等。插件提供了专用特征,并且一般响应于接收到与该插件相关联的类型的网络内容而被激活,例如由浏览器从磁盘载入并被初始化。插件用例如C或C++之类的编程语言来实现,为此,浏览器向插件提供应用程序编程接口(API)。与在防止从因特网下载的代码执行诸如访问文件和打开到远程计算机的网络连接之类的敏感系统操作的安全环境中由浏览器执行的例如JavaScript之类的脚本代码不同,实现插件的代码一般是可由计算机处理器执行的本机代码(native code)。这样的本机代码不经受与浏览器执行的脚本代码相同的安全限制等级,并且可以执行敏感系统操作,这潜在地导致了未经授权的数据访问或者对系统安全性的损害。因此,对来自未知的或不可信的来源的插件的使用被阻止,并且用户不大可能使用由不太知晓的厂商提供的插件。此外,由于某些原因,创建浏览器插件是较困难且昂贵的任务。例如,安全问题必须被认识到并得到解决。此外,使用较困难,许多浏览器将平台专用编程语言用于插件开发;对于将由平台支持的每种平台类型(例如,Microsoft操作系统、MacOS操作系统、操作系统等),插件的平台专用版本被创建并分发;对于每种平台所支持的每种类型的浏览器(例如,Windows上的Internet Explorer、Windows上的FireFox、Mac OS上的FireFox以及MacOS上的浏览器),插件的浏览器专用版本可能需要被创建并分发。
如上面所介绍的,由于可能由对计算机资源进行不受限制的访问的程序代码引起的潜在危害,安全限制被施加于由网络浏览器执行的代码上,尤其是在代码来自未知或不可信的服务器的情况下。例如,大多数网络浏览器对所下载代码访问文件、网络、操作系统接口、存储设备和其他资源的能力进行了限制。在客户端计算机上由浏览器执行的代码(例如,下载的代码)受到更为严格的安全性管制,这是因为这样的代码可能会删除文件、不适当地使用系统资源、检索存储在计算机上的信息、在计算机中搜索安全弱点、向用户呈现针对敏感信息的请求(网络钓鱼)、在计算机上安装病毒、利用计算机攻击其他计算机或向其他计算机扩散病毒,等等。因此,诸如Internet Explorer之类的网络浏览器不允许来自不可信的服务器的代码运行,除非用户授予许可。
用于执行所下载代码(例如,Java小应用程序、ActiveXTM控件和Firefox扩展)的许多现有的基于浏览器的运行期环境向用户请求用于运行并访问任何系统资源的总括许可。ActiveX控件是可以被嵌入在网页中并在网页被访问,即被从网络服务器100下载时由Internet Explorer执行的计算机程序代码模块。当诸如ActiveX控件之类的代码被作为网页的一部分而下载并且试图在Internet Explorer浏览器中执行时,浏览器向用户显示警报消息,并且防止整个控件的执行(除非用户明确允许或批准该控件的执行),或者在其他示例中,除非用户明确允许来自该服务器或该服务器的网络域的代码执行。一旦用户批准了控件的执行,控件可以访问广泛范围的系统资源。
诸如Microsoft Windows操作系统之类的其他现有的运行期环境提供了对端用户具有很小意义的安全粒度水平,例如,通过请求用户准许读取文件。诸如Java之类的一些编程语言准许所下载的代码脚本使用安全凭证信息,例如数字签注证书来访问计算机上受限制的资源。然而,所下载的代码的安全凭证被暴露给用户,并且用户通常负责维护这些凭证,例如,在凭证到期时更新它们并保持它们的机密性。此外,诸如专用设备之类的某些系统资源即使在获得准许时也不能为利用所使用的网络编程语言(例如JavaScript或Java)编写的程序所用,因为该语言缺乏到这些资源的接口。这样的资源可经由诸如C++之类的“本机”编程语言来访问,但是本机语言与网络编程语言之间的通信复杂,并且现有网络编程架构未提供用于将本机程序与基于浏览器的网络应用相集成的特征。
这些安全限制削弱了在现有的网络编程架构中开发的应用提供与根据系统资源访问和其他特征由本机应用提供的用户接口相匹配的丰富用户接口的能力。现有架构提供了复杂的并且给应用开发者施加了确保安全的负担的基本安全特征。因此,希望具有这样的编程架构,其允许编程者快速容易地开发出安全且妥善地访问安全敏感的系统资源的网络应用。
发明内容
一般地,在第一方面中,本发明的特征在于一种计算机实现的方法,该方法包括:生成针对计算机程序代码组件的风险评级,其中,所述组件包括可操作来使得至少一个受限制的系统操作被执行的至少一个组件操作,其中,所述风险评级是基于用来签注(sign)所述组件或者与所述组件相关联的描述的数字证书的;生成所述组件操作的描述;以及向用户提示对执行至少一个受限制的系统操作的许可,其中,所述提示包括所述风险评级和所述组件操作的描述。
本发明的实施例可以包括一个或多个下面的特征。生成风险评级可以是响应于接收到包括用于使所述计算机程序代码组件被执行的计算机程序脚本代码的网页的。所述风险评级可以是包括最高风险等级和最低风险等级在内的至少两个风险等级中的一个。向用户提示许可可以响应于计算机程序脚本代码对组件的第一次引用而发生,所述计算机程序脚本代码响应于网络浏览器接收到与所述脚本代码相关联的网页而被执行。所述计算机程序代码组件可以响应于计算机程序脚本代码对在网络浏览器中执行的插件的调用而执行,所述计算机程序脚本代码响应于所述网络浏览器接收到与所述脚本代码相关联的网页而被执行。向用户提示许可可以包括显示被指定的许可,其中,所述被指定的许可与所述至少一个受限制的系统操作相对应,并且所述被指定许可可以由端用户授予,作为执行所述受限制的系统操作的前提。
一般地,在第二方面中,本发明的特征在于一种使基于网络浏览器的代码能够在客户端计算机上执行受限制的系统操作的计算机实现的方法。该方法包括:在服务器计算机处向所述客户端计算机提供计算机程序代码,该代码包括具有用于调用所述受限制的系统操作的至少一个组件操作的至少一个组件;所述计算机程序代码还包括组件的实现方式,其中,该实现方式用于使得用于从用户请求对执行所述受限制的系统操作的许可的提示被显示,并且还用于响应于从用户接收到许可而调用所述受限制的系统操作,并且所述提示是基于与组件相关联的风险评级以及组件操作的。所述提示可以包括与组件相关联的风险评级。程序代码可以是网络浏览器插件。组件可以与从多个风险层级中选出的风险层级相关联,并且所述风险评级可以是基于风险层级的简短短语。风险指示符可以包括基于由所述组件提供的至少一个操作的短语。组件可以包括实现方式功能以及描述所述实现方式功能的接口定义。所述提示可以将对许可的请求显示在计算机的输出设备上。从用户接收许可可以包括经由客户端计算机的输入设备从用户接收肯定性响应。该方法还包括:接收与组件相关联的签注授权体的证书,并且所述风险评级还可以基于所述证书。所述受限制的系统操作可以包括访问文件、访问网络、访问显示设备或者这些的组合。
一般地,在第三方面中,本发明的特征在于一种使基于网络浏览器的代码能够在客户端计算机上执行受限制的系统操作的计算机实现的方法。该方法包括:在服务器计算机处向所述客户端计算机提供计算机程序代码,所述程序代码包括具有用于调用所述受限制的系统操作的至少一个组件操作的至少一个组件,所述代码响应于与网络文档(web document)相关联的脚本代码对组件的调用由所述网络浏览器执行,其中,所述代码可操作来响应于经由所述网络浏览器接收到来自用户的输入来调用所述受限制的系统操作,并且所述输入用于产生与执行所述操作相关联的动作,所述动作隐含地同意执行所述操作。所述动作可以包括执行所述操作时的至少一个步骤。
一般地,在第四方面中,本发明的特征在于一种计算机实现的方法,该方法包括:从响应于网络浏览器对网页的接收而被执行的计算机程序脚本代码接收对组件操作的调用,其中,所述组件包括可操作来使得受限制的系统操作被执行的至少一个组件操作;并且允许所述组件操作响应于经由网络浏览器接收到来自用户的输入而使得所述受限制的系统操作被执行,其中,所述输入用于产生与执行所述操作相关联的动作,所述动作不是对执行所述操作的许可的明确授予,并且所述动作隐含地授予执行所述操作的许可。
一般地,在第五方面中,本发明的特征在于一种使基于网络浏览器的代码能够在客户端计算机上执行受限制的系统操作的计算机实现的方法。该方法包括:响应于对组件操作的调用,使得用于从用户请求对执行受限制的系统操作的许可的提示被显示;并且响应于从用户接收到许可,调用所述受限制的系统操作,其中,所述提示涉及所述组件操作进行操作的对象或服务。
一般地,在第六方面中,本发明的特征在于一种计算机可读介质,包括用于使将在网络浏览器中执行的计算机程序代码执行受安全限制的操作的计算机可执行指令,所述指令用于:经由计算机网络向所述网络浏览器提供组件,该组件包括接口以及实现所述接口的至少一部分的本机语言实现方式,其中,所述实现方式用于响应于所述网络浏览器中的插件代码对所述接口的调用来调用所述本机语言实现方式,其中所述本机语言实现方式用于向用户提示执行所述操作的许可,并且还用于响应于接收到来自用户的许可而调用所述操作,其中,所述提示基于与所述组件相关联的风险指示符,所述提示还基于与所述组件相关联的至少一个许可要求,并且所述提示包括与所述许可要求相关联的操作的描述,其中,所述描述涉及所述组件的至少一个应用专用特征。
本发明的实施例可以包括一个或多个下面的特征。计算机可读介质还可以包括:用于接收与所述组件相关联的签注授权体的证书的计算机可执行指令,其中,所述风险指示符基于所述证书和所述操作。所述受安全限制的本机操作系统操作可以是访问文件、访问网络、访问显示设备或者它们的组合。
一般地,在第七方面中,本发明的特征在于一种计算机可读介质,包括用于使与网页相关联的基于浏览器的程序代码选择性地访问浏览器宿主计算机的本机操作系统资源的计算机可执行指令。方法包括:接收依次包括实现方式功能和使得所述基于浏览器的程序代码调用所述实现方式功能的接口的组件,其中,所述实现方式功能可操作来响应于从所述浏览器宿主计算机的用户接收到对访问受限制的系统操作的许可而在所述浏览器宿主计算机上执行所述受限制的系统操作;响应于所述基于浏览器的程序代码对所述接口的调用,向用户提示对执行所述受限制的系统操作的许可;并且响应于从用户接收到肯定性响应,调用所述实现方式功能以执行所述受限制的系统操作。
一般地,在第八方面中,本发明的特征在于一种计算机可读介质,包括计算机可执行代码,所述计算机可执行代码用于:显示对于执行所述计算机可执行代码的组件的许可的提示,其中,所述提示基于与所述组件相关联的风险指示符,所述提示还基于与所述组件相关联的至少一个许可要求,并且所述提示包括与所述许可要求相关联的操作的描述,其中,所述描述涉及至少一个应用专用特征;并且响应于从用户接收到针对所述提示的肯定性响应,向所述组件授予执行所述许可要求指定的操作的许可。
一般地,在第九方面中,本发明的特征在于一种系统,该系统包括:处理器;存储器,被耦合到所述处理器;以及程序指令,被提供给所述存储器并且可由所述处理器执行来:在服务器计算机处向客户端计算机提供计算机程序代码,所述程序代码包括具有用于调用受限制的系统操作的至少一个组件操作的至少一个组件,并且所述代码响应于与网络文档相关联的脚本代码对所述组件的调用由网络浏览器执行,其中所述代码用于响应于经由所述网络浏览器接收到来自用户的输入来调用所述受限制的系统操作,并且所述输入用于产生与执行所述操作相关联的动作,所述动作隐含地同意执行所述操作。
附图说明
结合附图参考下面的描述可以最好地理解本发明,在附图中,相似的部分可由相似的标号来指代:
图1A-1E是根据本发明实施例的用于执行网络浏览器中的组件的系统的说明图。
图2是根据本发明实施例的与组件有关的信息的说明图。
图3是根据本发明实施例的用于请求准许执行组件的提示的说明图。
图4和图5是根据本发明实施例的文件上载组件的说明图。
图6示出了本发明实施例中的可用来实现处理功能的典型计算系统。
具体实施方式
呈现下面的描述以使本领域技术人员能够制造并使用本发明,并且下面的描述是在特定应用及其要求的背景下提供的。对实施例的各种修改对本领域技术人员来说将是显而易见的,并且在不脱离本发明的精神和范围的情况下,这里定义的一般原理还可应用于其他实施例和应用。此外,在下面的描述中,阐述了许多细节以用于说明的目的。然而,本领域技术人员将认识到,不使用这些具体细节也可以实践本发明。在其它实例中,公知的结构和设备被以框图形式示出,以使本发明的描述不会被不必要的细节所模糊。因此,本发明不希望被局限于所示出的实施例,而是与符合这里公开的原理和特征的最宽范围一致。
虽然已根据特定实施例和附图描述了本发明,然而本领域技术人员将认识到,本发明不限于所描述的实施例或附图。本领域技术人员将认识到,各个实施例的操作可以适当地用硬件、软件、固件或者其适当的组合来实现。例如,一些处理可以在软件、固件或硬连线逻辑的控制下利用处理器或其它数字电路来执行。(这里的术语“逻辑”是指固定硬件、可编程逻辑和/或其适当组合,如本领域技术人员为了实现所述功能将认识到的)。软件和固件可以被存储在计算机可读介质上。一些其它处理可利用本领域技术人员公知的模拟电路来实现。另外,存储器或其它存储装置以及通信组件也可用在本发明的实施例中。
图1A-1E是根据本发明实施例的用于执行网络浏览器104中的组件148的平台的说明图。图1A示出了平台的功能单元的整体视图,图1B-1E示出了具体功能单元的更详细视图。组件148例如可以是提供一般对于网络浏览器104中的诸如JavaScriptTM之类的基于网络的代码不可用的服务的计算机程序代码模块。这些服务例如包括拖动和释放(drage and drop)操作、文本语音转换(text to speech)操作、以及其它受限制的或本机系统操作和资源130。软件开发者可以通过定义指定由组件提供的一个或多个操作的接口162以及这些操作的实现方式164来添加另外的组件148。组件的示例包括FlickrUploader组件,其提供了拖动和释放用户界面,该拖动和释放用户界面用于通过从用户的计算机拖动文件并将其释放到由FlickrUploader组件设置在网络浏览器104中的用户界面区域来将图像上载到在线照片共享服务。其它示例组件包括文本语音转换组件和图像处理组件(称为ImageAlter)。组件148能够被用于由用户提供的基于浏览器的程序代码107,例如作为网页的一部分从网络服务器下载的JavaScript代码。图1A的包括插件接口108和引导程序(daemon)140的示例平台使得这种基于浏览器的程序代码能够使用组件148。由于组件148提供了不可在网络浏览器104中获得的特征,因此组件148扩展了可供网页106使用的端用户机器102的特征组。因为由组件提供的特征经常使用潜在地被有害地滥用的受限制的系统操作和资源,因此需要有效的安全措施来确保组件以用户明确地或隐含地批准的方式来使用受限制的操作和资源。
系统102包括组件执行逻辑140,其提供核心服务142和组件提供商接口146,例如C提供商接口和RubyTM解释的编程语言提供商接口。尽管在这里描述了C和Ruby,然而组件提供商接口146也可以支持其他语言,例如C++、Java等。组件执行逻辑140包括包含至少一个组件160的组件集合148。每个组件包括(一种或多种)实现方式功能164以及描述(一种或多种)实现方式功能164的(一个或多个)接口定义162。接口定义例如可以是描述由组件160提供并由实现方式164实现的(一个或多个)操作的名称和参数的JSON描述文件。在一个示例中,(一种或多种)实现方式功能164执行浏览器宿主计算机102上的(一个或多个)受限制的系统操作,如果从浏览器宿主计算机的用户接收到对(一个或多个)操作的许可的话。即,实现方式功能提示用户批准当功能被执行时将实施的特定的受限制或安全敏感的操作,例如打开文件或网络连接、经由网络连接进行通信或者访问诸如打印机、语音合成器或存储设备之类的系统资源等等。每种实现方式功能可以选择用于安全提示的合适的粒度水平。例如,实现方式功能可以针对每次文件访问(file access)、针对所有文件访问或者针对网络浏览器会话期间的文件访问等等来提示用户。(一种或多种)实现方式功能中的至少一部分可以利用本机代码来实现,如本领域技术人员已知的。
受限制的系统操作例如可以是本机功能(即,可从诸如C或C++之类的语言调用并且一般不可直接被组件148获得的功能,因为组件148可能是用不直接访问本机功能的诸如Ruby之类的语言实现的)。本机功能可以通过提供与用户或端用户机器102相关联的用户的登录凭证或数字证书来建立用户的身份和访问许可,从而访问系统资源。本机功能例如可以在输出设备上显示信息和/或从输入设备接收信息,或者执行诸如拖动和释放、文本语音转换、文件浏览等之类的操作系统专用功能。本机功能可以访问存储在磁盘、光盘、基于半导体的存储器等上的数据。
这些受限制的系统操作仅可以由本机代码,例如用诸如C或C++之类的语言编写的、被编译为机器级指令的代码来访问。网络浏览器中通常支持的诸如Java、JavaScript和Ruby之类的编程语言不具有访问某个本机操作系统或硬件特征的特征,或者即使这些语言的确具有这些特征,这些特征通常也会由于对这些特征的未经限制的访问所造成的安全风险而被网络浏览器104禁用。插件接口108通过提供组件执行逻辑140来允许基于浏览器的代码107(例如,从网络服务器100下载的用户提供的JavaScript代码)访问这些受限制的特征,其中组件执行逻辑140允许开发者经由开发者所提供的组件实现方式164的本机代码部分或者经由针对某些经常使用的特征的内置本机代码来实现访问这些特征的组件148。在一个示例中,插件接口108是浏览器插件,其经由诸如ActiveX或NPAPI之类的浏览器插件应用程序编程接口(API)来与网络浏览器104接口连接。通过将诸如验证端用户批准了对受限制的操作的调用的安全用户提示(secure userprompting)之类的安全检查包括在组件实现方式164中,或者通过要求在调用受限制的特征之前使端用户可获得特定类型的许可(例如,打开IRC连接的许可)的组件实现方式164和/或插件共用库117,来防止基于浏览器的程序代码107以及组件148(包括本机和非本机代码部分)未经授权地使用受限制的系统操作。
核心接口144包括用于访问诸如用户界面拖动和释放、文件访问、安全用户提示、文本语音转换和GPS接口之类的硬件特征或操作系统的本机实现方式。内置或预定义的组件被提供用于从诸如JavaScript和Ruby之类的常见语言访问这些预定义的本机实现方式。组件148包括预定义组件,例如用于拖动和释放、文件访问、安全用户提示、文本语音转换、GPS等的组件。
在一个示例中,包括插件接口108、核心服务142和组件148在内的系统模块通过安装引导程序170被安装在端用户机器102上(即,使得可在其上执行),其中引导程序170经由诸如因特网之类的计算机网络从分发服务器150接收模块。安装引导程序170是由用户安装的,并且继承(inherit)了用户的访问凭证,其中安装引导程序170使用该访问凭证来在用户机器102上安装系统模块。系统模块继承了用户的访问凭证并且使用这些凭证来执行本机代码并访问受限制的系统操作。
网络浏览器104包括从网络服务器100接收的网页106。网页可以包括或引用用户提供的JavaScript代码107。JavaScript代码107是基于浏览器的代码的示例,其可以是可由网络浏览器104调用的计算机程序代码。网络浏览器104还包括插件接口108,插件接口108使用一般的浏览器插件API 114与浏览器专用插件API 116接口连接,而浏览器专用插件API116进而与浏览器核心118接口连接从而将一般的浏览器插件API 114接口连接到浏览器104。插件适配器层112提供用户提供的脚本代码107(例如JavaScript)与一般的浏览器插件API(例如,也为JavaScript)之间的接口,一般的浏览器插件API与本机代码插件共用库117(例如,C或C++)接口连接,本机代码插件共用库117能够调用在通常由网络浏览器104提供给网页106的脚本语音代码执行环境中不可获得的受限制的系统操作。插件适配器112例如响应于来自基于浏览器的程序代码107的组件调用指令而被调用。插件适配器112例如可以按照向用户JavaScript 107提供结果或通知的回调(callback invocation)形式来反过来被一般的浏览器插件API 114调用。
核心逻辑140包括如上面介绍的一个或多个语言专用组件提供商接口146。组件执行逻辑140可被实现为引导程序,即,在后台和/或独立于特定用户而运行的处理,并且与一个或多个插件接口108通信。核心逻辑引导程序140例如在引导程序被初始化时或者在针对组件160的请求被接收到时,载入用于每个组件148的接口和实现方式。利用适用于针对组件164的语言的动态载入或链接处理(例如,针对C语音组件的动态库打开调用,或者针对Ruby组件的适当的Ruby载入操作)来载入组件实现方式。每个组件提供商接口146从插件适配器112接收组件调用请求。在一个示例中,组件调用请求是序列化版本的组件调用指令,适于经由从插件适配器112(其是浏览器进程的一部分)到核心服务142的核心接口144(其是核心逻辑引导程序进程140的一部分)的进程间通信来传输。核心接口144将序列化的调用指令转发给组件提供商接口146,组件提供商接口146调用相应组件160的适当实现方式功能,其中,功能和组件在组件调用请求中被指定。在一个示例中,提供商接口逻辑146可以响应于操作的完成来撤销来自浏览器宿主计算机的用户的许可。在另一示例中,提供商接口逻辑可以响应于与基于浏览器的程序代码相关联的网络会话的终止,来撤销来自浏览器宿主计算机的用户的许可。
提供商接口146可以将接口定义递送给插件适配器逻辑。在提供了内省类型(introspection of types)的诸如Ruby之类的语言中,可从用户提供的组件实现方式中自动地得出接口定义。插件适配器112可以从组件接收接口定义。
提供商接口146可以从分发服务器150、存储设备或其它数据源载入(一个或多个)组件148。(一个或多个)组件148例如可以是共享库,并且可以是包括接口定义、接口的实现方式以及接口的文档的信息包。(一个或多个)组件148可由任何可信任的实体提供。如果实现方式确保在系统资源上执行任何操作之前请求并接收到用户许可,则每个组件148的操作实质上是安全的(即,不会访问可能会导致安全侵害的任何系统资源)。只要用户被提示,则用户提供的JavaScript将不能在计算机102上执行恶意动作,因为用户提供的JavaScript一般无法提供针对提示的答复。
实现方式功能可以提供结果,其中,提供商接口逻辑和插件适配器逻辑将结果递送,即转发给基于浏览器的程序代码。即,可将响应从(一个或多个)组件148返回用户提供的JavaScript。
根据签注了特定组件以及关于该组件的所有关联信息的证书,可以向端用户提供对允许组件执行的风险的有意义的理解。当组件被网页需要时,系统获取组件描述。这些描述可以被签注或未被签注。未被签注的组件是“匿名的”,并且被作为“沙盒”(sand-boxed)组件执行。被签注组件的风险是基于签注它们的证书来动态且安全地确定的。这种分层方法允许分散地开发安全组件。提示被呈现给用户以请求准许执行由组件提供的操作。呈现给用户的提示的类型和性质是基于组件和特定组件操作的风险的。
如上面所介绍的,可以针对组件生成“风险评级”以允许用户判定组件是否可以在用户的计算机上被执行。风险评级是基于签注了组件以及关于该组件的其它信息的证书的。签注了组件的证书将组件的提供商标识为可信任的授权实体,在该情况中,该组件被认为是官方组件或第三方组件,在该情况中,可信任的授权体保证了组件提供商(例如,发布商)的身份是正确的,或者被认为是独立组件,在该情况中,组件提供商是可信任的授权体知道的,或被认为是匿名组件,在该情况中,可信任的授权体对组件的安装或执行发出警告。当要求用户许可执行组件时,风险评级被传送给用户。在一个示例中,如果组件提供的一个或多个操作被调用,则在用于许可执行该组件将执行的具体的受限制的系统操作的请求中将风险评级显示给用户。在一个示例中,用于许可的请求响应于组件的初始化而被显示,其中,初始化可以响应于浏览器接收到包括脚本代码的网页而发生,并且脚本代码包括调用组件的操作(例如,方法、过程或功能)的语句。在另一示例中,用于许可的请求在执行组件操作之前,响应于脚本代码对特定操作的调用而被显示。
在一个示例中,风险评级与从低风险到高风险的范围中的多个风险层级中的层级相对应。分层风险评级系统被提供来指示用户在使用特定组件时应当给予的警惕等级。在一个示例中,多个层级中的每个层级与如上所述的风险评级相对应,即,风险是基于签注组件的证书的。通过需要访问特定资源以执行诸如读取文件之类的受限制的操作的组件来将提示呈现给用户。提示根据组件的风险而改变。风险可以作为基于风险的简短短语,例如“非常低的风险”,或者作为基于风险以及组件希望调用的操作的更详细短语,例如“擦除或覆写存储在你的计算机上的图片具有非常低的风险”而被呈现给用户。
在一个示例中,提供了四个风险层级,并且组件可与层级之一相关联。风险评级可与层级中的各层级相关联。
该系统提供了对组件的安全的外部授权。可信任的授权体充当“看门者”并且向这些各个实体发放签注证书。取决于签注了特定组件以及描述该组件的关联信息的证书,对组件风险的有意义的描述可被生成并被呈现给用户。即,风险等级是基于证书中的信任程度的,其中,高度受信任的证书具有最低的风险。
在一个示例中,当使用组件时,例如当网页上的脚本代码调用组件时,组件描述被获得。这些描述可以被签注或未被签注。未被签注的组件是“匿名的”,并且在受保护的“沙盒”环境中被执行。被签注组件的风险等级是基于签注它们的证书来动态且安全地确定的。这种分层方法允许分散的组件开发。此外,高风险类组件的执行可以默认地不被准许,从而使带给平均用户的风险最小化,同时使得组件开发者能够使用大多数类型的系统资源。
在一个示例中,组件许可对象被提供来表示对执行与许可对象相关联的特定操作的许可。组件许可包括名称和描述。例如,表示对连接到聊天服务器的许可的许可ConnectToChatServer可以具有关联描述“连接到IRC(聊天)主机”。组件许可表示对用户有意义的操作,例如诸如连接到聊天服务器之类的应用专用操作。同样,组件许可的描述也描述了对用户有意义的方面的许可,例如“连接到IRC(聊天)主机”比“打开网络连接”或“打开范围6667-7002中的端口上的网络连接”更有意义。描述的一部分“IRC(聊天)主机”是指应用专用特征,例如IRC或聊天主机。列出了端口6667-7002而未阐述应用的描述不涉及具体应用,并且因此不涉及应用专用特征。
在一个示例中,可将对许可对象的要求与安全敏感的组件操作相关联,并且组件可以请求相应的许可对象,例如上述的ConnectToChatServer许可在组件的初始化或初始处理期间被获得。当组件将被执行时,组件请求对调用操作的许可。可以通过利用在这里的其它地方描述的安全用户提示来提示用户,从而获得操作所需的许可对象。如果用户针对描述要发生的动作的提示响应以肯定的“是”,则许可被授予用户以调用操作。在另一示例中,用户可以具有可替代安全用户提示的关联数字证书,从而为用户提供调用操作的许可。可将操作与所需的最大风险等级相关联,从而使得操作可以由具有如下证书的用户来执行,该证书具有等于或低于操作所需的最大风险等级的风险等级。
例如,聊天组件可以包括打开到聊天服务器的网络连接的名为“连接”的操作。聊天组件可以部分地用例如Ruby之类的一种语言来实现,并且部分地用例如C之类的第二本机语言来实现。本机语言实现方式可以包括对操作系统网络连接功能的直接调用,在该情况中,本机语言实现方式检查与用户相关联的许可的存在,其中,该许可与将被执行的操作,例如网络连接功能相对应,例如ConnectToChatServer许可。如果许可存在(例如,与用户相关联),则本机实现方式调用操作系统网络连接功能。如果许可不存在,则实现方式调用安全用户提示用户接口,其表示对用户的提示,例如“给予通过网络与聊天服务器通信的许可?该动作的风险等级低”。提示包括描述将被执行的动作的短语,并且动作是根据组件操作(在上面的示例中是用于建立到聊天服务器的网络连接的“连接”操作)来描述的。提示根据组件操作,例如与聊天服务器通信,来描述被请求的许可。提示还描述风险等级,例如低。与对组件用户的意义较小的底层操作系统功能(例如,连接到服务器“a.b.com”的端口7000)的含义相比而言,提示根据组件操作的语义含义来描述操作。
图2是根据本发明实施例的用于组件的元数据信息的说明图。图2示出了示例组件200的性质,包括组件的名称202(ImageAlter)、类型204(独立的)、版本206(1.0.1)、corelet(即,组件)API版本208(3)、描述210(“A corelet based on ImageMagick to alter images locallyand serve them over HTTP”)、以及包括操作规范214和文档216的接口规范212。接口规范212被图1A的组件执行逻辑140用来将接口(如由接口规范212指定的)与实现方式登记为组件148。在一个示例中,组件执行逻辑140可以通过从接口规范212提取每个操作的名称和参数类型来确定组件的接口。实现方式例如可以包括以源、对象或字节代码的形式用诸如Ruby之类的语言实现的程序代码,包括用于访问本机操作系统功能的任何部分的本机实现方式(用诸如C++之类的语言)。一旦被登记,组件的接口所提供的操作可供基于浏览器的代码107使用。在此示例中,接口212被以文本格式指定,并且包括名为Alter的单个操作。示例接口规范为:Alter(<path>file,<integer>maxwidth,<integer>maxheight,<integer>rotation,<string>quality,<list>effects,<string>format。
可以通过以接口规范212的形式将另外的条目添加到元数据中来将另外的操作包括在接口中。文档214提供对示例性Alter操作的描述,即,“Alter an image and return a localhost URL by which the result may beaccessed”。文档214可以自动地被转换用于在诸如集成开发环境之类的开发工具中使用。
图3是根据本发明实施例的显示在网络浏览器中以请求对执行组件的许可的提示的说明图。图3示出了提示对话框300,其显示了表明主机计算机(在此示例中为browserplus.yahoo.com)正请求对使用和激活用户计算机上的新的服务(即,组件)的许可。该提示要求用户在批准之前仔细查看被请求的许可302的列表。被请求的许可302包括显示桌面通知(Display desktop notifications)许可304和下载并激活服务(Downloadand Activate service)许可306。显示桌面通知许可已得到用户允许,如与许可304的描述相邻的勾选标记所示的。下载并激活许可306包括与将被下载并激活的服务有关的进一步细节,包括通知(Notify)服务描述308,其表明通知服务是传递桌面通知的服务。拒绝(Deny)按钮310可由用户选择来拒绝对下载和激活的许可。允许(Allow)按钮312可以被选择以允许执行下载和激活服务。在用户定义的组件被基于浏览器的代码调用时,可以针对这些组件显示类似的提示。
图4和图5是根据本发明实施例的文件上载组件的说明图。文件上载组件400允许图片文件被拖动并释放到区域410中。文件随后由组件上载到图5示出了从图片目录被上载的图片510。该界面还包括用于施加变换的组件520以及用于调节图片大小的组件530。这些组件调用用户的计算机上的本地操作(例如,ImageMagick库)以在网络浏览器内处理图片。
在一个示例中,如果组件丢失,则组件执行逻辑140询问任意数目的分发服务器,以寻找并检索该组件,包括解析依赖关系。组件148被版本化,即,被与版本号相关联,并且组件版本可能会为另一组件或者在端用户机器102的阶层中被插件接口108所需要。在一个示例中,组件148被与这样的版本相关联,该版本包括主版本号、副版本号以及微细版本号,从而形成版本,例如2.0.1。组件具有例如由与描述组件本身的名称相组合的由组件提供商的因特网域名指定的唯一名称。因此,示例组件名称为“com.vendor.ImageAlter”。版本指定符可以包括主编号和副编号,或者主编号、副编号和微细编号。如果出现在版本指定符中的所有编号与组件版本中的相应编号相同,则组件版本与版本指定符相匹配。在一个示例中,在确定如何满足对组件的请求时考虑三个列表:端用户机器102上可获得哪些更新(优先级1)、被安装的组件(优先级2)、以及可从网络,例如从分发服务器150获得的组件(优先级3)。
根据本发明实施例,提供了安全机制。安全机制包括安全用户提示、隐含同意和安全资源表示。在一个方面中,安全用户提示包括显示具有这样的提示的对话框,该提示描述将被执行的具体操作。提示利用涉及组件对其进行操作的对象或服务的类型的至少一个组件专用术语来描述操作。例如,提示“Allow access to photographs”涉及术语“photographs”,其是允许访问照片的组件进行操作的对象的类型。作为另一示例,提示“Allow access via Instant Messaging”涉及术语“Instant Messaging”,其是允许访问即时消息传输操作的组件进行操作的服务的类型。在一个示例中,组件专用术语比组件所调用的(一个或多个)底层操作系统功能的描述更具体。例如,用于授予读取许可的操作系统级操作具有与读取许可有关的、独立于任何特定应用或组件对象或服务的一般性描述。
根据本发明的实施例,隐含同意安全特征是指响应于用户动作而对于用户执行操作的肯定同意,其中该响应不是对准许执行操作的明确请求的响应。作为隐含同意的示例,为了指定作为可能存在风险的操作的起始点的文件,用户与计算机交互。组件可以将交互解释为用户同意执行对文件的操作,例如受限制的系统操作。类似地,对于其它资源类型,控制对资源类型的访问的组件可以响应于用户以特定方式与组件的用户接口的交互来允许用户对资源类型执行操作。用户的交互,例如,与用户接口组件的交互,表示用户隐含地准许执行操作。例如,将文件拖动到显示网页的浏览器应用中的用户动作提供了这样的隐含同意:与网页相关联的代码可以对指定文件进行操作(例如,读取或写入)。
在另一示例中,系统可以呈递上下文中对话(in-context dialog),以便例如提供组件所需的用户名称和登录凭证。该输入由不受不可信的网页106的控制的插件共用库117来呈递,在此情况中,不向用户提示对执行操作,例如“登录到Flickr”的许可,而是,可以将凭证的获取集成到流程中。在此情况中,用户可以拒绝给予Flickr凭证同时使用特定网站,并且端用户将付出较少的脑力耗费。然而,最终结果是一样的,用户在不受网页控制的情况下被请求批准动作。
隐含同意允许将多个用户交互步骤组合到单个步骤中。利用隐含同意,不是明确地请求用户准许执行操作。而是,从用户的动作中推断出用户对执行操作的许可。隐含同意提高了安全性,并且使得网络交互的使用变得容易。在Flickr上载示例中,例如,流程如下。在不利用隐含同意的情况下,(1)用户访问上载到Flickr但不是Flickr产品的页面;(2)用户被重新引导至Flickr页面以针对Flickr进行授权;(3)用户完成针对Flickr的授权;(4)用户关闭Flikcr页面的窗口,返回原始页面,并通过点击按钮完成认证。
利用隐含同意,在较少步骤中执行相同的认证流程:(1)用户访问上载到Flickr但不是Flickr产品的页面;(2)“安全对话”出现在页面上;安全对话在不受原始页面控制的情况下处理针对Flickr的授权;(3)用户输入凭证并点击ok;并且(4)原始页面自动地被通知。第一种流程的最后一步骤,即点击原始页面上的按钮以指示认证完成,在利用隐含同意时不再需要。此外,对Flickr服务的后续访问可以自动地将用户的凭证提供给Flickr,从而使得当登录期满时,用户无需再次提供凭证。由Flickr组件来安全且可信地维护凭证。
在Flickr登录示例中,组件请求准许执行需要登录凭证的操作,例如登录到Flickr上去。网页调用针对Flickr授权的功能。对凭证以及传输授权请求的提示在Flickr访问组件(例如组件148中所示的FlickerUploader)的指导下由核心服务142执行,而不受页面的控制。当完成了授权请求时,网页接收返回值,其可以是“被授权”、“用户拒绝授权”或者“授权失败(差的凭证)”。由于网页不能访问用于认证被执行的站点的用户凭证(例如,登录名称和密码),因此安全性被增强。
在另一示例中,为了与网络可访问的相机(webcam)交互,利用明确同意,(1)用户访问提供了web cam特征的网页;(2)用户点击“从webcam拍照”按钮;(3)在不受网页控制的情况下用户被提示准许拍照;并且(4)用户点击“捕捉”按钮来拍照。利用隐含同意,相同的webcam交互在较少步骤中被执行:(1)用户访问webcam的页面;(2)用户被呈现以显示当前webcam视图的对话(该对话不受网页控制);(3)用户点击“捕捉”按钮,从而授予网站使用webcam的隐含同意。根据本发明的实施例,安全资源表示通过该用户交互来生成,并且可在JavaScript代码中作为安全资源标识符被访问。该标识符被结合到具体资源,例如文件,并且不能由基于浏览器的(例如JavaScript)代码改变。在一个方面中,标识符是可被引用的随机的唯一编号,但是不能被改变来指代不同的文件或其它资源。文件选择的存在期是基于页面存在期的,因此在页面被浏览器关闭之后,标识符变为无效。
组件实现方式独立于网页上的基于浏览器的代码(例如JavaScript)来提示端用户。因此,组件代码通过用户提供的响应,例如准予(肯定的)或拒绝(否定的)许可而被绑定。在一个方面中,可能会安全敏感的任何操作,例如可以访问或删除所存储信息或者可以使用网络连接的任何操作具有潜在的安全风险,并且应当通过安全用户提示来提供保护,或者在一个示例中通过验证与操作相对应的经证书验证的许可对象来提供保护。
在一个示例中,可以提供白名单(white-list)特征来使能或禁用特定网站上的特定组件或者其特定版本的执行。白名单条目准许站点使用特定组件。分发服务器150分发经签注的分发文件,该文件包括被准许使用组件的域的白名单、要清除(例如,删除)的组件的黑名单、以及要清除的平台版本的黑名单。例如,如果组件的版本1.0.1被得知具有缺陷,则黑名单特征可用来防止在将来执行版本1.0.1。白名单特征可由用户控制。例如,音乐站点可以使用用以将歌曲直接导入用户的Apple音乐播放器目录中的组件。组件可以请求用户允许导入一次、允许每次导入或者从不允许。
在一个示例中,使用图1A的插件接口平台108的客户端包括用于清除组件和/或其的所指定版本的黑名单特征。客户端下载包含许可包(permission bundle)的经数字签注的包。该下载可以在指定时刻或者定期地发生,响应于从服务器接收到的消息或者在其它时刻发生。该许可包包括列出了要被清除的一个或多个组件以及相对应的版本的撤销列表。撤销列表上的任何被安装组件被清除,并且重新安装被清除组件的任何后续尝试都不会成功。插件接口平台108自身可被清除列表中的指定实体远程地禁用。
可以不时地获得组件的新版本。由于可能安装在端用户机器102上的大量组件,使所安装的所有组件保持最新可能会不利地影响性能并且/或者过多地消耗资源。当用户访问使用组件的站点时,站点将组件需求表达为需求语句,例如组件名称、版本和最小版本三联体码。最近被请求的所有需求被存储。更新检查定期地清除过期的需求语句并且在分发服务器中核查满足其余的当前需求的并且是当前安装在机器102上的较新版本的组件的那些组件。任何这样的较新版本在后台中被下载,例如不停止任何正执行的组件,并且被存储在更新缓存中。然后,如果网络浏览器104访问表达了通过可获得的所缓存更新将得到更好服务的需求的站点,则向用户提示准许安装所下载的更新。例如可以通过找出未被用来满足当前需求并且未被使用达延续的时间段的组件来标识并删除过期组件。可以在具有最小负面影响的情况下从机器102中清除这些组件。
图6示出了本发明实施例中的可用来实现处理功能的典型计算系统600。这种类型的计算系统例如可用在客户端和服务器中。本领域技术人员还将认识到如何利用其它计算机系统或体系结构来实现本发明。计算系统600例如可以表示台式、膝上型或笔记本计算机、手持计算设备(PDA、蜂窝电话、掌上电脑等)、大型机、服务器、客户端,或者可能希望用于或适合用于给定应用或环境的任何其它类型的专用或通用计算设备。计算系统600可以包括一个或多个处理器,例如处理器604。处理器604可以利用通用或专用处理引擎(例如,微处理器、微控制器或其它控制逻辑)来实现。在此示例中,处理器604被连接到总线602或其它通信介质。
计算系统600还可以包括主存储器608,例如随机存取存储器(RAM)或其它动态存储器,用于存储信息以及将由处理器604执行的指令。主存储器608还可用于存储将由处理器604执行的指令的执行期间的临时变量或其它中间信息。计算系统600同样可以包括用于存储静态信息以及用于处理器604的指令的、被耦合到总线602的只读存储器(“ROM”)或其它静态存储设备。
计算系统600还可以包括信息存储系统610,其例如可以包括介质驱动器612和可移除存储接口620。介质驱动器612可以包括支持固定或可移除存储介质的驱动器或其它机构,例如硬盘驱动器、软盘驱动器、磁带驱动器、光盘驱动器、CD或DVD驱动器(R或RW)或者其它可移除或固定介质驱动器。存储器介质618例如可以包括供介质驱动器612读取和写入的硬盘、软盘、磁带、光盘、CD或DVD或者其它固定或可移除介质。如这些示例所示的,存储介质618可以包括其中存储有特定计算机软件或数据的计算机可读存储介质。
在替代实施例中,信息存储系统610可以包括用于允许计算机程序或其它指令或数据被载入计算系统600的其它类似组件。这样的组件例如可以包括可移除存储单元622和接口620,例如程序盒式存储器和盒式接口、可移除存储器(例如,闪存或其它可移除存储器模块)和存储器插槽,以及允许将软件和数据从可移除存储单元618传送到计算系统600的其它可移除存储单元622和接口620。
计算系统600还可以包括通信接口624。通信接口624可用来允许软件和数据在计算系统600与外部设备之间传送。通信接口624的示例包括调制解调器、网络接口(例如,以太网或其它NIC卡)、通信端口(例如,USB端口)、PCMCIA插槽和卡等等。经由通信接口624传送的软件和数据是信号的形式,这样的信号可以是可由通信接口624接收的电信号、电磁信号、光信号或其它信号。这些信号经由信道628被提供给通信接口624。该信道628可以载运信号并且可以利用无线介质、线路或线缆、光纤或其它通信介质实现。信道的一些示例包括电话线、蜂窝电话链路、RF链路、网络接口、局域或广域网以及其它通信信道。
在此文档中,术语“计算机程序产品”、“计算机可读介质”等通常可用来指诸如存储器608、存储设备618或存储单元622之类的介质。这些和其它形式的计算机可读介质可用来存储供处理器604使用的一个或多个指令,以使处理器执行指定操作。通常被称为“计算机程序代码”(其可以以计算机程序或其它群组的形式被分组)的这些指令在被执行时使得计算系统600执行本发明实施例的特征或功能。注意,代码可直接使处理器执行指定操作,可被编译以实现此,和/或可与其它软件、硬件和/或固件元件(例如,用于执行标准功能的库)相组合来实现此。
在利用软件实现元件的实施例中,软件可被存储在计算机可读介质中,并且例如利用可移除存储驱动器614、驱动器612或通信接口624被载入计算系统600中。控制逻辑(在此示例中为软件指令或计算机程序代码)在被处理器604执行时,使得处理器604执行如这里描述的本发明的功能。
将理解,为了清楚的目的,上面的描述参考不同功能单元和处理器描述了本发明的实施例。然而,应该明白,在不脱离本发明的情况下,可以使用在不同的功能单元、处理器或域之间的任何合适的功能分布。例如,被图示为由分离的处理器或控制器执行的功能可以由同一处理器或控制器执行。因此,对具体功能单元的引用仅被看作是对用于提供所描述功能的合适装置的引用,而不是指严格的逻辑的或物理的结构或组织。
尽管已结合一些实施例描述了本发明,然而不限于这里阐述的具体形式。相反,本发明的范围仅由权利要求来限定。另外,尽管特征可能表现为是结合特定实施例来描述的,然而本领域技术人员将认识到可以根据本发明将所描述实施例的各种特征相组合。
此外,尽管是分别列出的,然而多个装置、元件或方法步骤例如可通过单个单元或处理器来实现。另外,尽管各个特征可能被包括在不同权利要求中,然而这些特征也可能被有利地组合,并且在不同权利要求中的包括不暗示着特征的组合是不可行的和/或不利的。此外,特征被包括在一类权利要求中不暗示着对该类别的限制,而是也可以适当地将特征等同地应用于其它权利要求类别。
此外,将理解,在不脱离本发明的精神和范围的情况下本领域技术人员可作出各种修改和变更。本发明不受前面的说明性细节限制,而是根据权利要求来限定。
尽管上面仅详细描述了某些示例性实施例,然而本领域技术人员将容易理解,在未实质性地脱离本发明的新颖教导和优点的情况下,可以在示例性实施例中作出许多修改。因此,希望将所有这些修改包括在本发明的范围之内。

Claims (15)

1.一种计算机实现的方法,包括:
通过计算机提供插件接口,所述插件接口使得基于浏览器的代码能够执行对用户机器的本机系统资源进行访问的受限制的系统操作,所述受限制的系统操作由所述用户机器上存储的多个计算机程序代码组件执行,每个计算机程序代码组件包含本机代码部分并且所述插件接口包含本机代码共用库,所述本机代码共用库使得能够在接收到与每个计算机程序代码组件相关联的相应类型的用户许可时调用计算机程序代码组件;
通过所述计算机来将对计算机程序代码组件之一的第一引用包含在所述用户机器上的网络浏览器中执行的计算机程序脚本代码中;
通过所述计算机来配置所述插件接口以便响应于所述第一引用来接收对与被引用的计算机程序代码组件相关联的至少一个组件操作的描述,所述至少一个组件操作用于使至少一个受限制的系统操作中被执行;
通过所述计算机生成针对将由所述用户机器执行的被引用的计算机程序代码组件的风险评级,其中,所述风险评级指示若所述用户机器执行所述被引用的计算机程序代码组件、则所述被引用的计算机程序代码组件将给所述用户机器造成的风险,所述风险评级与所述至少一个组件操作和风险等级相关联,所述风险等级是基于与所述组件相关联的签注数字证书而从至少两个风险等级中选择的;
通过所述计算机生成对与所述受限制的系统操作有关的所述至少一个组件操作的描述;以及
通过所述计算机经由所述插件接口向用户提示与所述至少一个受限制的系统操作相关联的相应类型的许可,其中,所述提示包括所述风险评级和对所述组件操作的描述,其中所述描述包括专用于所述被引用的计算机程序代码组件的至少一个术语。
2.如权利要求1所述的方法,其中,响应于接收到包括引用所述计算机程序代码组件的所述计算机程序脚本代码的网页而生成所述风险评级。
3.如权利要求1所述的方法,其中,所述风险评级包括至少两个风险等级,所述至少两个风险等级包括最高风险等级和最低风险等级。
4.如权利要求1所述的方法,其中,所述计算机程序代码组件响应于所述计算机程序脚本代码对在所述网络浏览器中执行的所述插件接口的调用而执行,所述计算机程序脚本代码响应于所述网络浏览器接收到与所述脚本代码相关联的网页而被执行。
5.如权利要求1所述的方法,其中,向用户提示许可包括显示被指定的许可,其中,所述被指定的许可与所述至少一个受限制的系统操作相对应,并且所述被指定的许可将由端用户作为执行所述受限制的系统操作的前提授予。
6.一种使基于网络浏览器的代码能够在客户端计算机上执行受限制的系统操作的计算机实现的系统,该系统包括:
用于通过服务器计算机向所述客户端计算机发送计算机程序代码的装置,所述计算机程序代码包括插件接口,所述插件接口用于调用对所述客户端计算机的本机系统资源进行访问的受限制的系统操作,所述受限制的系统操作由所述客户端计算机上存储的多个计算机程序代码组件执行,每个计算机程序代码组件包含本机代码部分并且所述插件接口包含本机代码共用库,所述本机代码共用库使得能够在接收到与每个计算机程序代码组件相关联的相应类型的用户许可时调用计算机程序代码组件;
用于通过所述服务器计算机来将对计算机程序代码组件之一的第一引用包含在所述客户端计算机上的网络浏览器中执行的被发送的计算机程序代码中的装置;
用于通过所述服务器计算机来配置所述插件接口以便响应于所述第一引用来在所述客户端计算机处接收对与被引用的计算机程序代码组件相关联的至少一个组件操作的描述的装置,所述至少一个组件操作用于使至少一个受限制的系统操作中被执行;
用于通过所述服务器计算机经由所述本机代码共用库来在所述客户端计算机处显示提示的装置,所述提示用于向所述用户请求用于执行所述至少一个受限制的系统操作的类型的许可并且还用于响应于从所述用户接收到许可来调用所述至少一个受限制的系统操作,
其中,所述提示被配置成显示与所述组件操作相关联的风险评级以及包含专用于所述至少一个计算机程序代码组件的至少一个术语的对组件操作的描述,所述风险评级指示若所述客户端计算机执行所述组件、则将给所述客户端计算机造成的风险并且所述风险评级是基于风险等级的,所述风险等级是基于与所述组件相关联的签注数字证书而从至少两个风险等级中选择的。
7.如权利要求6所述的系统,其中,所述提示包括基于由所述客户端计算机提供的至少一个操作的短语。
8.如权利要求6所述的系统,其中,所述组件包括实现方式功能以及描述所述实现方式功能的接口定义。
9.如权利要求6所述的系统,其中,所述提示将对许可的请求显示在所述客户端计算机的输出设备上。
10.如权利要求6所述的系统,其中,从所述用户接收许可的包括经由所述客户端计算机的输入设备从所述用户接收肯定性响应。
11.如权利要求6所述的系统,还包括:
用于接收与所述组件相关联的所述签注授权体的所述证书的装置。
12.如权利要求6所述的系统,其中,所述受限制的系统操作包括访问文件、访问网络、访问显示设备或者它们的组合。
13.一种使基于网络浏览器的代码能够在客户端计算机上执行受限制的系统操作的计算机实现的方法,该方法包括:
通过服务器计算机向所述客户端计算机发送计算机程序代码,所述计算机程序代码包括具有用于调用所述受限制的系统操作的至少一个组件操作的至少一个组件,被发送的计算机程序代码包括插件接口,所述插件接口使得所述客户端计算机上的基于浏览器的代码能够执行对所述客户端计算机的本机系统资源进行访问的受限制的系统操作,所述受限制的系统操作由所述客户端计算机上存储的多个计算机程序代码组件执行,每个计算机程序代码组件包含本机代码部分并且所述插件接口包含本机代码共用库,所述本机代码共用库使得能够在隐含地接收到与每个计算机程序代码组件相关联的相应类型的用户许可时调用计算机程序代码组件;
通过所述服务器计算机来将对至少一个计算机程序代码组件的第一引用包含在所述被发送的计算机程序代码中,以使得当所述被发送的计算机程序代码被所述网络浏览器执行时,计算机程序代码组件之一响应于与包含所述插件接口的网络文档相关联的脚本代码进行的所述第一引用而被调用;
通过所述服务器计算机来使得能够响应于在缺少对许可的明确请求的情况下经由所述网络浏览器接收到来自用户的输入来自动执行至少一个受限制的系统操作,所述输入导致与被调用的组件相关联的组件操作以及所述至少一个受限制的系统操作被执行,所述输入隐含地授予与所述被调用的组件相关联的相应类型的同意以执行所述至少一个受限制的系统操作。
14.一种使基于网络浏览器的代码能够在客户端计算机上执行受限制的系统操作的计算机实现的方法,该方法包括:
通过浏览器主机接收插件接口,所述插件接口使得基于浏览器的程序代码能够对所述浏览器主机上存储的多个组件进行访问,所述插件接口包含本机代码共用库,所述本机代码共用库许可所述多个组件的调用,所述多个组件中的每一个包括实现方式功能以及本机代码接口以响应于从所述浏览器主机的用户接收到对访问所述受限制的系统操作的相应类型的许可来执行对所述浏览器主机的本机系统资源进行访问的受限制的系统操作;
通过所述浏览器主机来执行对所述基于浏览器的程序代码中包含的所述多个组件中的至少一个组件的第一引用;
响应于所述第一引用,通过所述浏览器主机来接收对所述至少一个组件的实现方式功能的描述;
向所述用户提示所述用于执行至少一个受限制的系统操作的相应类型的许可,所述提示包含对与所述相应类型的许可要求相关联的操作的描述,其中所述描述包括专用于所述至少一个组件的至少一个术语,所述提示基于与该组件的相关联的风险指示符,所述风险指示符指示若所述浏览器主机执行所述至少一个组件的实现方式功能、则将对所述浏览器主机造成的风险,所述风险指示符基于风险等级,所述风险等级还是基于与所述至少一个组件相关联的签注授权体的证书而从至少两个风险等级中选择的;以及
响应于从所述用户接收到肯定的响应来调用所述至少一个组件的实现方式功能以执行所述至少一个受限制的系统操作。
15.一种使基于网络浏览器的代码能够在客户端计算机上执行受限制的系统操作的计算机实现的设备,该设备包括:
用于通过服务器计算机向所述客户端计算机发送计算机程序代码的装置,所述程序代码包括具有用于调用所述受限制的系统操作的至少一个组件操作的至少一个组件,被发送的计算机程序代码包括插件接口,所述插件接口使得所述客户端计算机上的基于浏览器的代码能够执行对所述客户端计算机的本机系统资源进行访问的受限制的系统操作,所述受限制的系统操作由所述客户端计算机上存储的多个计算机程序代码组件执行,每个计算机程序代码组件包含本机代码部分并且所述插件接口包含本机代码共用库,所述本机代码共用库使得能够在隐含地接收到与每个计算机程序代码组件相关联的相应类型的用户许可时调用计算机程序代码组件;
用于通过所述服务器计算机来将对至少一个计算机程序代码组件的第一引用包含在所述被发送的计算机程序代码中的,以使得当所述被发送的计算机程序代码被所述网络浏览器执行时,计算机程序代码组件之一响应于与包含所述插件接口的网络文档相关联的脚本代码进行的所述第一引用而被调用装置;
用于通过所述服务器计算机来使得能够响应于在缺少对许可的明确请求的情况下经由所述网络浏览器接收到来自用户的输入来自动执行至少一个受限制的系统操作的装置,所述输入导致与被调用的组件相关联的组件操作以及所述至少一个受限制的系统操作被执行,所述输入隐含地授予与所述被调用的组件相关联的类型的同意以执行所述至少一个受限制的系统操作。
CN200980107056.4A 2008-03-02 2009-02-23 基于安全浏览器的应用 Expired - Fee Related CN101960446B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US6787208P 2008-03-02 2008-03-02
US61/067,872 2008-03-02
US12/350,177 US8635701B2 (en) 2008-03-02 2009-01-07 Secure browser-based applications
US12/350,177 2009-01-07
PCT/US2009/034833 WO2009111195A2 (en) 2008-03-02 2009-02-23 Secure browser-based applications

Publications (2)

Publication Number Publication Date
CN101960446A CN101960446A (zh) 2011-01-26
CN101960446B true CN101960446B (zh) 2014-08-13

Family

ID=41014269

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200980107056.4A Expired - Fee Related CN101960446B (zh) 2008-03-02 2009-02-23 基于安全浏览器的应用

Country Status (10)

Country Link
US (1) US8635701B2 (zh)
EP (1) EP2250577A4 (zh)
JP (2) JP5296106B2 (zh)
KR (2) KR101384085B1 (zh)
CN (1) CN101960446B (zh)
AU (1) AU2009220439B2 (zh)
HK (1) HK1153011A1 (zh)
SG (1) SG188169A1 (zh)
TW (1) TWI420338B (zh)
WO (1) WO2009111195A2 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107403338A (zh) * 2011-06-17 2017-11-28 谷歌公司 视野内的广告

Families Citing this family (73)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8294723B2 (en) 2008-11-07 2012-10-23 Google Inc. Hardware-accelerated graphics for web applications using native code modules
US9258136B2 (en) * 2009-01-19 2016-02-09 Koninklijke Philips N.V. Browser with dual scripting engine for privacy protection
US20100192193A1 (en) * 2009-01-23 2010-07-29 Microsoft Corporation Security restriction techniques for browser-based applications
US8966374B1 (en) * 2009-03-30 2015-02-24 Glance Networks, Inc. Method and apparatus for enabling participants to assume control over a presentation in a remote viewing session
US8797337B1 (en) 2009-07-02 2014-08-05 Google Inc. Graphics scenegraph rendering for web applications using native code modules
US8706801B2 (en) * 2009-07-20 2014-04-22 Facebook, Inc. Rendering a web page using content communicated to a browser application from a process running on a client
CN102025761B (zh) * 2009-09-21 2013-07-17 腾讯科技(深圳)有限公司 实现Web装置与Flash装置协同工作的方法与系统
US8990698B2 (en) * 2009-09-23 2015-03-24 Microsoft Technology Licensing, Llc Social network service synchronization
US9137319B2 (en) * 2009-11-13 2015-09-15 Adobe Systems Incorporated Browser privacy mode support
CN102081709B (zh) * 2009-12-01 2017-05-24 联想(北京)有限公司 一种浏览器插件的禁用方法、装置和终端
CN101854359B (zh) * 2010-05-19 2012-10-31 南京联创科技集团股份有限公司 基于虚拟化计算的权限控制方法
US20110307831A1 (en) * 2010-06-10 2011-12-15 Microsoft Corporation User-Controlled Application Access to Resources
US20120030760A1 (en) * 2010-08-02 2012-02-02 Long Lu Method and apparatus for combating web-based surreptitious binary installations
US9294479B1 (en) * 2010-12-01 2016-03-22 Google Inc. Client-side authentication
US8689235B2 (en) 2011-01-18 2014-04-01 Gbc Industries System and method for enabling interaction between a cloud application and a local application
WO2012112323A2 (en) 2011-02-15 2012-08-23 Korrelate, Inc. A dual blind method and system for attributing activity to a user
CN102111417A (zh) * 2011-03-01 2011-06-29 中国工商银行股份有限公司 网上银行数据的认证方法、装置、服务器及系统
CN102682014A (zh) * 2011-03-14 2012-09-19 腾讯科技(深圳)有限公司 在浏览器上实现的开放式插件管理平台及插件管理方法
US9141360B1 (en) 2011-03-16 2015-09-22 Google Inc. Web application module translation service
US9210209B2 (en) * 2011-05-03 2015-12-08 Google Inc. Extensible browser plugin interface
US8646100B2 (en) * 2011-06-03 2014-02-04 Apple Inc. Method for executing an application in a restricted operating environment
JP5820258B2 (ja) * 2011-06-09 2015-11-24 キヤノン株式会社 管理装置、管理方法、およびプログラム
JP2013065114A (ja) * 2011-09-15 2013-04-11 Fujitsu Ltd 情報処理システムの制御方法、中継装置の制御プログラム及びクライアント装置の制御プログラム
US9106650B2 (en) 2011-11-09 2015-08-11 Microsoft Technology Licensing, Llc User-driven access control
CN102436508B (zh) * 2011-12-28 2013-08-14 奇智软件(北京)有限公司 基于沙箱技术浏览网页的方法及装置
US8935755B1 (en) * 2012-02-06 2015-01-13 Google Inc. Managing permissions and capabilities of web applications and browser extensions based on install location
US9767259B2 (en) * 2012-05-07 2017-09-19 Google Inc. Detection of unauthorized content in live multiuser composite streams
US9407443B2 (en) 2012-06-05 2016-08-02 Lookout, Inc. Component analysis of software applications on computing devices
US10592978B1 (en) * 2012-06-29 2020-03-17 EMC IP Holding Company LLC Methods and apparatus for risk-based authentication between two servers on behalf of a user
CN103593370B (zh) * 2012-08-16 2017-08-22 腾讯科技(深圳)有限公司 在浏览器中实现扩展应用的方法及浏览器
US9563424B2 (en) * 2012-08-17 2017-02-07 Google Inc. Native code instruction selection
US9213827B2 (en) * 2012-09-27 2015-12-15 Intel Corporation Security data aggregation and business intelligence for web applications
CN103002019B (zh) * 2012-11-14 2016-01-13 北京奇虎科技有限公司 浏览器及浏览器发送页游消息的方法
US9420031B2 (en) * 2013-01-15 2016-08-16 Microsoft Technology Licensing, Llc Systems and methods for building and using hybrid mobile applications
CN104036160B (zh) * 2013-03-07 2019-03-15 腾讯科技(深圳)有限公司 一种网页浏览方法、装置及浏览器
US20140337424A1 (en) * 2013-05-10 2014-11-13 Apple Inc. Authorizing Push Notifications for Websites
CN104253805B (zh) * 2013-06-28 2018-07-06 腾讯科技(深圳)有限公司 一种浏览器的数据保护方法及浏览器
JP2015075902A (ja) * 2013-10-08 2015-04-20 キヤノン株式会社 画像形成装置、その制御方法とプログラム
CN103761114B (zh) * 2013-10-18 2017-10-17 北京奇虎科技有限公司 一种浏览器侧加载扩展和/或插件的方法及装置
JP6352140B2 (ja) 2013-10-22 2018-07-04 キヤノン電子株式会社 ウェブシステム、サーバ切替装置、サーバ切替方法およびプログラム
GB2514716A (en) * 2013-10-25 2014-12-03 Univ Stellenbosch System and method for monitoring third party access to a restricted item
CN105917320B (zh) * 2013-12-03 2019-12-20 本田技研工业株式会社 一种移动电子装置协同系统
US9710566B2 (en) * 2013-12-16 2017-07-18 Google Inc. User interface for webpage permission requests
US10104081B2 (en) * 2013-12-19 2018-10-16 Google Llc Privileged static hosted web applications
KR102198751B1 (ko) * 2014-01-06 2021-01-05 십일번가 주식회사 모바일 결제 처리 시스템 및 그 방법, 그리고 이에 적용되는 장치
CN103745156B (zh) * 2014-01-07 2017-05-03 北京奇虎科技有限公司 一种在搜索引擎中提示风险信息的方法和装置
CN104601639A (zh) * 2014-03-13 2015-05-06 腾讯科技(深圳)有限公司 网页应用消息推送方法、客户端、服务器及系统
JP6424440B2 (ja) * 2014-03-14 2018-11-21 株式会社リコー 情報処理装置、機器、情報処理システム、情報処理方法及び表示制御プログラム
CN104077179B (zh) * 2014-06-16 2017-06-06 武汉理工大学 一种面向Web浏览器的本地API调用方法
KR102086731B1 (ko) * 2014-06-25 2020-04-14 에스케이플래닛 주식회사 클라우드 스트리밍 서비스 제공 방법, 이를 위한 장치 및 시스템, 그리고 이를 위한 클라우드 스트리밍용 스크립트 코드를 기록한 컴퓨터 판독 가능한 기록매체
CN104123353B (zh) * 2014-07-14 2017-11-28 可牛网络技术(北京)有限公司 一种提高浏览器安全性的方法及系统
CN105471824A (zh) * 2014-09-03 2016-04-06 阿里巴巴集团控股有限公司 实现浏览器调用本地业务组件的方法、装置及系统
US20160119147A1 (en) * 2014-10-24 2016-04-28 Mohammed Mustafa Saidalavi Method and System of Online Content Review, Authentication, and Certification
JP2016119029A (ja) * 2014-12-24 2016-06-30 株式会社リコー 情報処理装置、機器、情報処理システム、情報処理方法、プログラム、及びインストール方法
CN107851130A (zh) 2015-07-07 2018-03-27 简单保有限责任公司 用于在网页上识别和呈现相关联的物品的集成插件
GB201522315D0 (en) * 2015-12-17 2016-02-03 Irdeto Bv Securing webpages, webapps and applications
US9954894B2 (en) 2016-03-04 2018-04-24 Microsoft Technology Licensing, Llc Webpage security
US10728274B2 (en) * 2016-09-22 2020-07-28 Check Point Software Technologies Ltd. Method and system for injecting javascript into a web page
US10362049B2 (en) * 2016-10-12 2019-07-23 International Business Machines Corporation Security-risk plugin to help targeted users interact with web pages and applications
US10681105B2 (en) 2016-12-30 2020-06-09 Facebook, Inc. Decision engine for dynamically selecting media streams
US10218697B2 (en) 2017-06-09 2019-02-26 Lookout, Inc. Use of device risk evaluation to manage access to services
US10496810B2 (en) * 2017-09-26 2019-12-03 Google Llc Methods and systems of performing preemptive generation of second factor authentication
GB201805429D0 (en) * 2018-04-03 2018-05-16 Palantir Technologies Inc Security system and method
US10931675B2 (en) * 2018-04-10 2021-02-23 Microsoft Technology Licensing, Llc Local API access authorization
US10866845B2 (en) * 2018-05-16 2020-12-15 Microsoft Technology Licensing, Llc Exposing native OS APIS in a web browser
RU2728505C1 (ru) * 2019-02-07 2020-07-29 Акционерное общество "Лаборатория Касперского" Система и способ обеспечения информационной безопасности на основании антропной защиты
TWI776215B (zh) * 2020-08-24 2022-09-01 奇蹟行動科技有限公司 產生使用者介面的描述碼之方法、系統及非暫態電腦可讀取儲存媒體
US20220191177A1 (en) * 2020-12-10 2022-06-16 Kalibro Technologies Ltd. System and method for securing messages
CN112612515B (zh) * 2021-03-05 2021-05-25 四川数康致远医疗信息技术有限公司 医疗健康物联网产品标准化与应用场景展示方法和系统
US20220311776A1 (en) * 2021-03-25 2022-09-29 International Business Machines Corporation Injecting risk assessment in user authentication
CN113836097A (zh) * 2021-09-29 2021-12-24 上海掌门科技有限公司 本地文件的安全保护方法和设备
US12034874B2 (en) * 2021-10-10 2024-07-09 International Business Machines Corporation Validating certificates
US20230214235A1 (en) * 2022-01-04 2023-07-06 Citrix Systems, Inc. Control over application plugins

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030145316A1 (en) * 2002-01-25 2003-07-31 Mckinlay Eric System, method and computer program product for initiating a software download

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6154844A (en) * 1996-11-08 2000-11-28 Finjan Software, Ltd. System and method for attaching a downloadable security profile to a downloadable
US6968539B1 (en) 1999-09-30 2005-11-22 International Business Machines Corporation Methods and apparatus for a web application processing system
EP1113361A1 (en) * 2000-01-03 2001-07-04 Wimba.Com S.A. Process of communication between an applet and a local agent using a socket communication channel
US7233942B2 (en) * 2000-10-10 2007-06-19 Truelocal Inc. Method and apparatus for providing geographically authenticated electronic documents
US7801944B2 (en) * 2001-05-18 2010-09-21 Gary Stephen Shuster Distributed computing using agent embedded in content unrelated to agents processing function
EP1265143A1 (en) * 2001-06-08 2002-12-11 Hewlett-Packard Company, A Delaware Corporation Data processing system and method
US20040083474A1 (en) 2001-10-18 2004-04-29 Mckinlay Eric System, method and computer program product for initiating a software download
EP1315066A1 (en) * 2001-11-21 2003-05-28 BRITISH TELECOMMUNICATIONS public limited company Computer security system
US7287277B2 (en) * 2001-12-21 2007-10-23 Hewlett-Packard Development Company, L.P. Method and apparatus for controlling execution of a computer operation
US20030233483A1 (en) * 2002-04-23 2003-12-18 Secure Resolutions, Inc. Executing software in a network environment
JP2003337630A (ja) 2002-05-17 2003-11-28 Ntt Docomo Inc 通信端末、プログラム、記録媒体、通信端末のアクセス制御方法およびコンテンツの提供方法
JP2003337716A (ja) 2002-05-20 2003-11-28 Ntt Docomo Inc 電子機器、データ共用方法、プログラム及び記憶媒体
JP2004070716A (ja) 2002-08-07 2004-03-04 Sharp Corp コンテンツ提示方法、コンテンツ提示プログラム、コンテンツ提示装置、および該プログラムを記録する記録媒体
US7509679B2 (en) 2002-08-30 2009-03-24 Symantec Corporation Method, system and computer program product for security in a global computer network transaction
US7434259B2 (en) * 2002-10-21 2008-10-07 Microsoft Corporation Method for prompting a user to install and execute an unauthenticated computer application
US20040103309A1 (en) * 2002-11-27 2004-05-27 Tracy Richard P. Enhanced system, method and medium for certifying and accrediting requirements compliance utilizing threat vulnerability feed
US8042178B1 (en) * 2003-03-13 2011-10-18 Mcafee, Inc. Alert message control of security mechanisms in data processing systems
US7490332B2 (en) * 2003-04-04 2009-02-10 Sesma Systems, Inc. System and method for accessing ActiveX objects in a platform dependent environment from objects in a platform independent environment
US7478408B2 (en) * 2003-04-04 2009-01-13 Sesma Systems, Inc. System and method for accessing objects in a platform dependent environment from a platform independent environment
US8880893B2 (en) * 2003-09-26 2014-11-04 Ibm International Group B.V. Enterprise information asset protection through insider attack specification, monitoring and mitigation
JP2005104098A (ja) * 2003-10-02 2005-04-21 Ricoh Co Ltd 画像形成装置
US20050138416A1 (en) 2003-12-19 2005-06-23 Microsoft Corporation Object model for managing firewall services
US8332943B2 (en) * 2004-02-17 2012-12-11 Microsoft Corporation Tiered object-related trust decisions
US8108902B2 (en) 2004-04-30 2012-01-31 Microsoft Corporation System and method for local machine zone lockdown with relation to a network browser
US20050268112A1 (en) * 2004-05-28 2005-12-01 Microsoft Corporation Managing spyware and unwanted software through auto-start extensibility points
CN100385852C (zh) * 2004-06-22 2008-04-30 腾讯科技(深圳)有限公司 一种网页插件选择下载的实现方法及其装置
US20060156400A1 (en) * 2005-01-06 2006-07-13 Gbs Laboratories Llc System and method for preventing unauthorized access to computer devices
KR20060082353A (ko) * 2005-01-12 2006-07-18 와이더댄 주식회사 실행가능 웹 컨텐트 제공 및 처리 시스템 및 방법
US7610273B2 (en) 2005-03-22 2009-10-27 Microsoft Corporation Application identity and rating service
US8078740B2 (en) * 2005-06-03 2011-12-13 Microsoft Corporation Running internet applications with low rights
US8074272B2 (en) * 2005-07-07 2011-12-06 Microsoft Corporation Browser security notification
US7774846B2 (en) * 2005-08-10 2010-08-10 Intel Corporation Method and apparatus for controlling data propagation
WO2007023756A1 (ja) * 2005-08-24 2007-03-01 Nec Corporation 本人認証システム、ユーザ端末、サービス事業者装置、信頼性保証サーバ、これらの動作方法と動作プログラム
JP2009510598A (ja) * 2005-09-27 2009-03-12 サーカー ピーティーイー リミテッド コミュニケーション及びコラボレーションのためのシステム
US7743336B2 (en) * 2005-10-27 2010-06-22 Apple Inc. Widget security
JP2008027306A (ja) * 2006-07-24 2008-02-07 Aplix Corp ユーザ空間仮想化システム
US7797421B1 (en) * 2006-12-15 2010-09-14 Amazon Technologies, Inc. Method and system for determining and notifying users of undesirable network content
US8181264B2 (en) * 2007-02-07 2012-05-15 Apple Inc. Method and apparatus for deferred security analysis

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030145316A1 (en) * 2002-01-25 2003-07-31 Mckinlay Eric System, method and computer program product for initiating a software download

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107403338A (zh) * 2011-06-17 2017-11-28 谷歌公司 视野内的广告

Also Published As

Publication number Publication date
JP2013140634A (ja) 2013-07-18
US20090222925A1 (en) 2009-09-03
SG188169A1 (en) 2013-03-28
JP2011514996A (ja) 2011-05-12
KR20130008634A (ko) 2013-01-22
TWI420338B (zh) 2013-12-21
HK1153011A1 (zh) 2012-03-16
AU2009220439B2 (en) 2012-09-13
US8635701B2 (en) 2014-01-21
TW200945096A (en) 2009-11-01
AU2009220439A1 (en) 2009-09-11
WO2009111195A3 (en) 2009-10-29
WO2009111195A2 (en) 2009-09-11
JP5592969B2 (ja) 2014-09-17
EP2250577A2 (en) 2010-11-17
KR20100127807A (ko) 2010-12-06
EP2250577A4 (en) 2012-02-29
CN101960446A (zh) 2011-01-26
KR101384085B1 (ko) 2014-04-17
JP5296106B2 (ja) 2013-09-25

Similar Documents

Publication Publication Date Title
CN101960446B (zh) 基于安全浏览器的应用
US9811393B2 (en) Consistent extension points to allow an extension to extend functionality of an application to another application
EP2875463B1 (en) Method and system for browser identity
US10505983B2 (en) Enforcing enterprise requirements for devices registered with a registration service
US20190190898A1 (en) Methods and systems for managing internet preferences
US11095648B2 (en) Dashboard as remote computing services
US20160142413A1 (en) Ephemeral applications
MXPA04007143A (es) Administracion delegada de un recurso hospedado.
EP3616427A1 (en) Multi-level, distributed access control between services and applications
KR101832535B1 (ko) 서비스로서 신뢰할 수 있는 장치 클레임 제공 기법
Nauman et al. Design and implementation of a fine-grained resource usage model for the android platform.
US7882547B2 (en) Securely calling web services from macros
EP3195551B1 (en) Method and system for managing fine-grained policies for requiring user approval of device management operations
CN111737687A (zh) 网页应用系统的访问控制方法、系统、电子设备和介质
WO2019139855A1 (en) Data driven user interfaces for device management
KR101977428B1 (ko) 애플리케이션용 콘텐츠 핸들링 기법
US9354849B2 (en) Modification of compiled applications and application management using retrievable policies
Venkata Sai Santosh et al. Decentralized application for two-factor authentication with smart contracts
US20190327315A1 (en) Declarative security management plugins
CN114503074A (zh) 动态创建的打包应用的注册
US8214499B2 (en) System and method for enabling software applications as a service in a non-intrusive manner
Gennart et al. Role-based access control for openHAB users
US9848000B2 (en) Resource access
US20230216856A1 (en) Layered authentication method for managing access to cloud resources

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1153011

Country of ref document: HK

C14 Grant of patent or utility model
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: GR

Ref document number: 1153011

Country of ref document: HK

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20160802

Address after: California, USA

Patentee after: YAHOO! Inc.

Address before: California, USA

Patentee before: YAHOO! Inc.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20140813

CF01 Termination of patent right due to non-payment of annual fee