应用的内容处理的制作方法
【专利摘要】描述了用于应用的内容处理的技术。在一个或多个实现中,为被准许调用计算设备的码元的应用的第一部分施加第一组内容处理策略,并且为不被准许调用码元的应用的第二部分施加第二组内容处理策略。另外,基于应用的哪个部分正在请求内容来做出是向内容应用第一组内容处理策略还是第二组内容处理策略的确定。
【专利说明】应用的内容处理
【背景技术】
[0001 ] 当今的计算机用户可以访问各种各样的内容,例如视频内容、音频内容、文本内容等。然而,并非所有内容在计算设备上使用都是安全的。例如,一些内容可能包括当执行时可获得对计算设备的特定部分和/或关于用户的私人信息的未授权访问的恶意可执行代码(例如恶意软件)。
[0002]虽然存在用于防止恶意可执行代码获得这样的未授权访问的技术,但这些技术典型地不考虑当今内容开发者的期望。例如,内容开发者可能开发能经由计算设备访问远程内容(例如万维网内容)的应用。当前的技术在确定是否将允许远程内容对计算设备的访问权时,典型地不考虑这样的远程内容将如何经由计算设备来处理。另外,当前的技术典型地不使内容开发者能够指定将允许远程内容的特定实例访问计算设备。
【发明内容】
[0003]描述了用于应用的内容处理的技术。在一个或多个实现中,为被准许调用计算设备的码元的应用的第一部分施加第一组内容处理策略,并且为不被准许调用码元的应用的第二部分施加第二组内容处理策略。基于应用的哪个部分正在请求内容来做出向内容应用第一组内容处理策略还是第二组内容处理策略的确定。
[0004]在一个或多个实现中,检测到在计算设备上执行的应用包括将内容传递至计算设备的码元的请求。响应于该检测,基于该请求是否来自于被准许调用该码元的应用的部分来做出是否允许该请求的确定。
[0005]在一个或多个实现中,在计算设备处做出来自于应用、将内容传递至码元的请求是来自于被准许调用该码元的应用的部分的确定。基于内容的源或内容的内容类型的至少一个,内容是否可被传递至该码元得以确认。
[0006]提供该
【发明内容】
来以简化的形式介绍在以下【具体实施方式】中将进一步描述的概念的选择。本
【发明内容】
不旨在标识要求保护的主题的关键特征或必要特征,也不旨在被用来帮助确定所要求保护的主题的范围。
【专利附图】
【附图说明】
[0007]详细的描述参考附图得以描述。在附图中,附图标记的最左端的(一个或多个)数字标识其中该附图标记首先出现的附图。在说明书和附图中的不同实例中使用相同的附图标记可指示类似或相同的项。
[0008]图1是在可操作来采用用于应用的内容处理的技术的示例实现中的环境的图示。
[0009]图2是描绘在其中施加内容处理策略的示例实现中的过程的流程图。
[0010]图3是描绘在其中做出是否允许请求将内容传递至码元的确定的示例实现中的过程的流程图。
[0011]图4是描绘在其中做出内容是否可被传递至码元的确定的示例实现中的过程的流程图。[0012]图5图示了包括如参考图1和6描述的计算设备的示例系统。
[0013]图6图示了可实现为如参考图1和5描述的、实现在此描述的技术的实施例的任意类型的便携和/或计算机设备的示例设备的各种组件。
【具体实施方式】
[0014]概沭
计算设备可访问来自各种各样的源的各种各样的内容。然而,一些源可能是未知的,因此来自这样的源的内容可能不可信。另外,一些类型的内容内在地与安全风险相关联,因此在允许这样的内容访问计算设备的某些部分前应小心。
[0015]在某些场景中,用户(例如应用开发者)可能想访问来自未知源的内容。例如,用户可能写一应用,该应用当在计算设备上执行时尝试访问来自远离计算设备和/或对于计算设备而言未知的源的内容。这样的内容可包括文本内容、图片、视频、音频等。在此讨论的技术使这样的内容能由应用使用,同时防止不安全的内容获得对计算设备的敏感部分和/或功能的未授权访问。
[0016]从而,描述了用于应用的内容处理的技术。在一个或多个实现中,技术可被采用以降低恶意代码(例如恶意软件)能访问计算设备的敏感部分的可能性。这可以以各种方式来实行,例如通过将应用的功能分离为本地区划(local compartment)和远程区划(remotecompartment)ο在实现中,与本地区划相关联的功能使应用能够访问计算设备的敏感部分,例如系统级应用编程接口(API)。因此,内容限制可在本地区划上得以施加以防止不安全内容获得对计算设备的敏感部分的访问。另外,可防止与远程区划相关联的功能访问计算设备的敏感部分,因此可准许其访问不可信和/或不安全的内容。
[0017]在以下的讨论中,首先描述了可操作来采用在此描述的用于应用的内容处理的示例环境。接下来,描述了用于防止不安全内容访问计算设备的敏感部分的示例内容处理策略。然后描述了可在示例环境以及其他环境中采用的、涉及用于应用的内容处理的技术的示例过程。因此,示例环境不限于执行示例过程。同样地,示例过程不限于在示例环境中的实现。
[0018]实例环塏
图1是在可操作来采用用于应用的内容处理的技术的示例实现中的环境100的图示。环境100包括具有一个或多个处理器104、一个或多个计算机可读存储媒体106和一个或多个驻留在计算机可读存储媒体106上并且处理器104可执行的应用108的计算设备102。计算设备102可体现为任意适当的计算设备,例如,以示例而不是限制的方式,台式计算机、便携式计算机、诸如个人数字助理(PDA)之类的手持计算机、移动电话、平板计算机等。计算设备102的各种不同示例的其中之一在下面在图5和图6中得以示出和描述。
[0019]图1的计算设备102还被图示为包括例如万维网浏览器的浏览器110,其代表被配置成经由网络112导航(navigate)的功能。虽然网络112被图示为因特网,但该网络可采取各种各样的配置。例如,网络112可包括广域网(WAN)、局域网(LAN)、无线网络、公共电话网络、内联网等。另外,虽然示出了单一的网络112,但网络112可被配置为包括多个网络。
[0020]例如,浏览器110可被配置为经由网络112导航以与可从一个或多个万维网资源114可得到的内容交互,以及将数据传送到一个或多个万维网资源114,例如执行下载和上载。万维网资源114可包括任意适当的、被配置来提供经由网络112可访问的内容的计算资源。这样的内容的示例包括网页、文本内容、视频、音频等。
[0021]应用108的一个或多个还可被配置为例如它们自己直接地和/或通过浏览器110访问网络112。例如,应用108的一个或多个可被配置为访问万维网资源114的一个或多个以检索和/或上载内容。因此,还可为可涉及直接或间接网络112访问的各种功能配置应用108。例如,应用108可包括可由应用108本地影响(leverage)以及与在另一个计算设备上执行的应用同步的配置设置和其他数据。以这种方式,这些设置可由设备共享。还可预见各种其他实例。因此,计算设备102可以以各种方式与来自各种不同的源的内容交互。
[0022]还图示为计算设备102的一部分的是操作系统116,它代表管理计算设备102的资源并提供对计算设备102的功能的访问的功能。计算设备102还被示为包括应用管理器模块118,它代表监控和区分应用108的活动的计算设备102的功能。在一个或多个实现中,应用管理器模块118被配置为基于操作采用可信还是不可信的内容来允许或不允许应用108的特定操作。
[0023]图示为应用108的一部分的是可信内容120,它代表对计算设备102来说已知为可以是可信的内容和/或已知为从可信源接收的内容的数据。另外,万维网资源114被图示为包括不可信内容122,它代表基于内容的源和/或内容的特性不能被信任的内容。在一个或多个实现中,应用管理器模块118可被配置为基于内容的源确定内容是否可信。例如,如果内容从计算设备102内部的源(例如从可信内容120)接收,则应用管理器模块118可辨别该内容是可信的。另外,如果内容从计算设备102的外部源和/或对于计算设备102而言不可知的源(例如从不可信内容122)接收,则应用管理器模块118可辨别该内容不可信。
[0024]还被图示为应用108的一部分的是本地区划124和远程区划126。在实现中,本地区划124代表被准许访问计算设备102的某些敏感功能的应用108的部分。例如,本地区划124包括当执行时可被准许调用或访问通常被保护免受计算设备102的外部实体访问的计算设备102的功能和/或部分的应用代码。远程区划126代表不被准许访问计算设备102的某些敏感功能的应用108的部分。例如,包括在远程区划126中的应用代码当执行时可被防止访问计算设备102的敏感功能。
[0025]还被图示为应用管理器模块118的一部分的是被允许的码元128和经过滤的码元130。被允许的码元128和经过滤的码元130代表可由应用108访问以经由计算设备102执行一个或多个任务的计算设备102的功能的标识符。码元的示例包括功能、子例程、方法、参数、属性、接口(例如应用编程接口(API))等。在一个或多个实现中,由被允许的码元128和/或经过滤的码元130标识的特定码元可提供对计算设备102的敏感部分的访问,例如由操作系统116提供的功能、用户内容文件、私人用户信息等。作为被允许的码元128和经过滤的码元130的一部分而列出的示例仅出于示例的目的给出,将理解,计算设备102的任意功能和/或部分可作为被允许的码元128和/或经过滤的码元130的部分被包括。
[0026]将在计算设备102上可得到的码元划分为被允许的码元128和经过滤的码元130帮助防止应用108无意地将计算设备102的敏感部分暴露给不安全的内容。例如,被允许的码元128包括可通常由本地区划124无限制地调用以经由计算设备102执行各种操作的码元。对经过滤的码元130的访问可遭受内容检查以避免使不安全内容能够访问经过滤的码元130。例如,当应用108调用经过滤的码元130的其中之一来处理内容时,在允许该内容被传递至经过滤的码元130的其中之一前检查该内容以确保该内容是安全的。
[0027]应用管理器模块118可包括用于确定码元是否将被包括为经过滤的码元130的一部分的标准。例如,应用管理器模块118可指定如果特定码元可使内容能够访问和/或操纵计算设备102的文档对象模型(DOM)功能(例如与浏览器110相关联的超文本标记语言(HTML) DOM功能),则该特定码元将被包括为经过滤的码元130的一部分。
[0028]在实现中,不准许远程区划126访问被允许的码元128或经过滤的码元130。这可防止从远程区划126访问的不安全内容经由或者被允许的码元128或者经过滤的码元130访问计算设备102的敏感部分。
[0029]在图示示例中的计算设备102还被示出为包括内容检查模块132。内容检查模块132代表计算设备102检查由计算设备102例如经由应用108和/或浏览器110请求和/或检索的内容的功能。在一个或多个实现中,内容检查模块132被配置为在允许内容被传递至经过滤的码元130的其中之一前检查内容以确定该内容是否安全。
[0030]内容检查模块132包括可被内容检查模块132用来确定内容(例如可信内容120和/或不可信内容122)安全还是不安全的内容检查策略134。例如,内容检查策略134可指定如果内容满足一个或多个标准,则该内容被认为是不安全的。在实现中,内容检查策略134可指定如果不可信内容包括可由计算设备102执行和/或可在其上执行的可执行代码(例如脚本),则该不可信内容是不安全的。这样的可执行代码当执行时可使得能够实现对计算设备102的部分(例如操作系统116的功能、与计算设备102的用户相关联的私人信息等)的未授权访问。
[0031]虽然在此参考包括可执行代码的不安全内容讨论了实现,但将理解内容检查策略134可包括可被用来确定内容安全还是不安全的各种不同的标准和过滤器(filter)。例如,内容检查策略134可用来确定内容是否不安全的其他标准包括被认为不安全的特定网站、内容类型、文件类型、网络域等的指示。
[0032]如果内容检查模块132确定内容是不安全的,则该不安全的内容被防止传递至经过滤的码元130的特定码元。相反地,如果该内容被确定为是安全的,则该内容可被传递至该特定码元。
[0033]一般地,在此描述的任意功能可使用软件、固件、硬件(例如固定逻辑电路)或这些实现的组合来实现。在此使用的术语“模块”、“功能”和“逻辑”一般地表示软件、固件、硬件或其组合。在软件实现的情况下,模块、功能或逻辑代表当在处理器(例如一个或多个CPU)上执行时执行指定任务的程序代码。该程序代码可被存储在一个或多个计算机可读存储器设备中。以下描述的技术的特征是平台独立的,意味着这些技术可在具有各种处理器的各种商业计算平台上实现。
[0034]例如,计算设备102还可包括引起计算设备102的硬件(例如处理器、功能块等)执行操作的实体(例如软件)。例如,计算设备102可包括可被配置为保持引起该计算设备以及更具体地该计算设备102的硬件执行操作的指令的计算机可读介质。因此,指令运行来配置硬件执行操作并且以这种方式导致硬件执行功能的转变。指令可由计算机可读介质通过各种不同的配置提供给计算设备102。
[0035]计算机可读介质的一个这样的配置是信号承载介质,因此被配置为将这些指令(例如作为载波)例如经由网络传输给计算设备的硬件。计算机可读介质还可被配置为计算机可读存储介质,并且因此不是信号承载介质。计算机可读存储介质的示例包括随机存取存储器(RAM)、只读存储器(ROM)、光盘、闪存、硬盘存储器和其他可使用磁、光和其他技术存储指令和其他数据的存储器设备。
[0036]已描述了在其中在此描述的技术可操作的示例环境,现在考虑根据一个或多个实施例针对本地区划124和远程区划126的一些示例内容处理策略的讨论。
[0037]本地区划策略
如上所述,本地区划124代表被准许访问计算设备102的某些敏感功能的应用108的部分。例如,本地区划124包括当执行时能调用在被允许的码元128和经过滤的码元130中标识的码元例如以被用于处理内容的应用108的可执行代码。本地区划124的属性此后根据一个或多个实施例得以讨论。
[0038]本地区划标识
在实现中,作为本地区划124的一部分包括的内容使用特定于本地区划124的统一资源标识符(URI)方案来宣告。例如,作为本地区划124的一部分包括的内容可使用诸如“local-compartment://content”这样的URI来标识。当内容被确定为使用该URI来引用(例如通过应用管理器模块118和/或内容检查模块132)时,内容的源将被认为是本地区划124,并且特定于本地区划124的属性将被应用于该内容。没有特定于本地区划124的URI方案,内容将被作为不可信和/或作为与远程区划126相关联的来对待。
[0039]远稈可执行代码
本地区划124被防止包括对从可信内容120和/或计算设备102外部的源检索的可执行代码(例如脚本)的引用。例如,与本地区划124相关联的内容策略可指定包括在本地区划124中的代码不能引用可信内容120外部的可执行内容。这样的不准许引用的一个示例是引用脚本内容的统一资源定位符(URL)。然而,本地区划124可引用作为可信内容120的一部分被包括的可执行内容。
[0040]访问被允许的码元
本地区划124被准许调用被允许的码元128的码元。
[0041]访问经讨滤的码元
过滤本地区划124请求传递至经过滤的码元130的码元的内容以在将该内容传递至该码元之前核查该内容是安全的。例如,当对经过滤的码元130的其中之一的调用包括对内容(例如来自不可信内容122)的实例的引用时,该内容被内容检查模块132过滤。如果内容检查模块132确定该内容是安全的,则允许该内容被传递至该码元。相反地,如果确定该内容是不安全的,则防止该内容被传递至该码元。
[0042]内容源
在实现中,防止本地区划124访问来自可信内容120外部的源的某些类型的内容。例如,可准许本地区划124访问来自可信内容120外部的源的媒体内容(例如视频内容、图像、音频内容等)。然而,可防止本地区划124访问来自可信内容120外部的源的其他类型的内容,例如HTML内容、脚本内容、级联样式表(CSS)内容等。这可防止应用包括对来自不可信源的恶意内容(例如可执行代码)的引用。
[0043]第三方本机代码
在实现中,与应用108的其中之一相关联的第三方本机代码(native code)可存储在本地区划124中。第三方本机代码可涉及被应用108的其中之一使用但不是该应用的开发者写的可执行代码。然而,在这样的实现中,第三方本机代码由该应用标识,例如被宣告为该应用的清单(manifest)的一部分。如果该第三方本机代码没有被该应用宣告,则可防止该第三方本机代码由本地区划124执行。
[0044]跨域请求
在实现中,准许应用108调用来自本地区划124的跨域可扩展标记语言(XML)超文本传输协议(http)请求。例如,应用108可包括指向与计算设备102的外部的域相关联的媒体内容(例如来自网站)的URL。
[0045]字符编码
为了保护计算设备102的敏感部分,字符编码限制可施加在本地区划124上。在实现中,字符编码涉及包括在内容数据中的字符(例如符号)被呈现在计算设备上的方式。字符编码的示例包括通用字符集转换格式(UTF)。某些类型的字符编码可(例如由恶意软件和/或第三方)操纵以引起计算设备的不合期望的性能和/或使得能够实现对计算设备的敏感部分的未授权访问。因此,可限制本地区划124以使用特定的允许字符编码,例如UTF-8。
[0046]如果内容的特殊部分没有宣告的字符编码格式,可做出尝试以将该内容解析为允许的字符编码。如果该内容可使用允许的字符编码来解析,则该内容可由本地区划124用于例如输出内容。如果该内容不能使用允许的字符编码来解析,防止该内容被解析的错误可发生。另外,如果内容的特殊部分具有不同于允许的字符编码的经宣告的字符编码,则可防止该内容被解析和/或解析错误可发生。
[0047]远稈区划策略
如上所述,远程区划126代表不被准许访问计算设备102的某些敏感功能的应用108的部分。例如,远程区划126包括当执行时不被准许调用在被允许的码元128和经过滤的码元130中标识的码元的应用108的可执行代码。参考万维网内容,这样的内容可基于与万维网浏览器(例如浏览器110)相关联的相同的资源准许在远程区划中得以执行。远程区划126的附加属性此后根据一个或多个实施例得以讨论。
[0048]远稈区划标识
在实现中,作为远程区划126的一部分被包括的内容使用特定于远程区划126的统一资源标识符(URI)方案来宣告。例如,作为远程区划126的一部分被包括的内容可使用诸如“remote-compartment://content”这样的URI来标识。当内容被确定为使用这个URI (例如由应用管理器模块118和/或内容检查模块132)引用时,该内容的源将被认为是远程区划126,并且特定于远程区划126的策略将被应用于该内容。另外,使用其他URI方案(例如“http://”和/或“https://”)引用的内容将被作为与远程区划126和/或不可信的源相关联来对待。
[0049]远稈可执行代码
在实现中,准许远程区划126包括对来自可信源和不可信源(例如可信内容120和/或不可信内容122)的可执行代码(例如脚本)的引用。由于远程区划126没有对计算设备102的敏感部分的访问权,因此允许远程区划126引用不可信可执行代码没有将计算设备102的敏感部分暴露于不可信可执行代码的风险。
[0050]媒体内容 准许远程区划126包括对来自可信源和不可信源的媒体内容(例如可信内容120和/或不可信内容122)的引用。由于远程区划126没有对计算设备102的敏感部分的访问权,因此允许远程区划126引用不可信媒体内容没有将计算设备102的敏感部分暴露于可包括在不可信媒体内容中的不安全内容的风险。
[0051]第三方本机代码
在实现中,不准许远程区划126调用和/或引用第三方本机代码。这可防止这样的代码获得对计算设备敏感部分的未授权访问。
[0052]跨域请求
在实现中,不准许远程区划126包括跨域XML-http请求。这可防止经由网站或从远程区划126访问的其他网络资源访问不安全内容。
[0053]区划间通信
在实现中,控制远程区划126和本地区划124之间的通信以防止不安全内容在区划之间传递。例如,在区划之间的通信可使用单个通信技术来允许。
[0054]这样的技术的一个示例是向在第一区划中的内容增加事件生成器,例如使用postMessage O方法。然后可向另一个部分增加相应的事件监听器,例如使用addEventListener O方法。当事件由第一区划生成时,该事件由在另一个区划中的事件监听器检测到以促进区划之间消息的通信。
[0055]在一些场景中,本地区划124可经由postMessage O方法接收内容,并确定该内容从不可信源接收。在这样的场景中,在此讨论的内容过滤技术可被用来确定该内容是安全的还是不安全的。另外,如果确定该内容是不安全的,则该内容可被拒绝或清理。
[0056]已描述了示例内容处理策略,现在考虑根据一个或多个实施例的一些示例过程的讨论。
[0057]示例过程
以下讨论描述了可使用在此描述的系统、设备和内容处理策略实现的内容处理技术。每一个过程的各个方面可在硬件、固件或软件或其组合中实现。这些过程被示为一组方框,其指定由一个或多个设备执行的操作,并且不必限于所示的由相应方框执行操作的顺序。另外,根据一个或多个实现,参考特殊过程所示的操作可与不同过程的操作结合和/或交换。在以下讨论的部分中,将参考图1的环境100。
[0058]图2描绘了在其中施加内容处理策略的示例实现中的过程200。针对被准许调用计算设备的码元的应用的部分施加第一组内容处理策略,并且针对不被准许调用这些码元的应用的部分施加第二组内容处理策略(方框202)。内容处理策略的示例在上文和下文得以讨论。基于应用的哪个部分正在引用内容,做出对内容应用第一组内容处理策略还是第二组内容处理策略的确定(方框204)。例如,如果不可信内容由本地区划124请求,则应用第一组内容处理策略。然而,如果不可信内容由远程区划126请求,则应用第二组内容处理策略。在实现中,关于哪个区划正在请求该内容的确定可基于引用该内容的URI来做出。
[0059]图3描绘了在其中做出是否允许将内容传递至码元的请求的确定的示例实现中的过程300。检测到在计算设备上执行的应用包括将内容传递到该计算设备的码元的请求(方框302)。例如,应用108的其中之一可请求将内容的实例传递至被允许的码元128或经过滤的码元130的其中之一。[0060]基于该请求是否来自于被准许调用该码元的应用的部分,做出是否允许该请求的确定(方框304)。参考以上讨论的区划,应用管理器118可确定该请求是来自于本地区划124还是远程区划126。如果该请求来自于不被准许调用该码元的应用的部分(“不准许”),该内容被防止传递至该码元(方框306)。如上文所讨论的那样,不准许远程区划126调用计算设备102的码元。因此,如果确定该请求来自于远程区划126,则该请求可被拒绝。
[0061]如果该请求来自于被准许调用该码元的应用的部分(“准许”),则基于该内容的源和该内容的内容类型来确认是否可将该内容传递至该码元(方框308)。如上文所讨论的那样,在某些场景中准许本地区划124调用计算设备102的码元。因此,如果确定该请求来自于本地区划124,则该内容可经历进一步的详细检查以确定该内容是否可被传递至该码元。确定该内容是否可被传递至该码元的示例方式在下文更详细地讨论。
[0062]图4描绘了在其中做出内容是否可被传递至码元的确定的示例实现中的过程400。在实现中,过程400表示用于实现上文讨论的过程300的方框308的详细技术。确认请求被传递至码元的内容的源是可信源还是不可信源(方框402)。如果该内容的源是不可信源(“不可信”),则做出是否允许该内容的内容类型来自不可信源的确定(方框404)。参考图1的环境100,内容的源可以是不可信内容122。如上文所讨论的那样,不准许从不可信源检索某些类型的内容(例如可执行代码)并传递至码元。如果不允许该内容类型来自不可信源(“否”),则防止了该内容被传递至该码元(方框406)。可替换地,如果内容类型被允许来自不可信源(“是”),则过程400继续到方框408,下面将讨论。某些类型的内容(例如媒体内容、格式内容等)被准许从不可信源检索并被传递至码元,并在一些实现中遭受进一步的检查以确定该内容是否安全。
[0063]回到方框402,如果内容的源是可信源(“可信”)或在方框404确定内容类型被允许来自不可信源(“是”),则做出码元是被允许的码元还是经过滤的码元的确定(方框408)。如果码元是被允许的码元(“允许”),则准许该内容被传递至码元(方框410)。在实现中,被允许的码元和经过滤的码元之间的区别可例如通过预指定一组被允许的码元和一组经过滤的码元来显式地定义。可替换地,一组经过滤的码元可被预指定,并且基于码元未在该组经过滤的码元中被标识可隐式地确定特定码元是被允许的码元。该内容使用该码元来处理(方框412)。例如,该内容可例如作为网页的一部分、文档等被处理以呈现。
[0064]回到方框408,如果该码元是经过滤的码元(“过滤”),则检查该内容以确认将该内容传递至该码元是否安全(方框414)。例如,内容检查模块132能将内容检查策略134中的一个或多个应用于该内容以确定该内容是安全的还是不安全的。如上文所讨论的那样,包括可执行代码的内容可被确定为传递至经过滤的码元是不安全的。此外,安全内容可包括诸如图像、文本、音频、视频、呈现数据、静态HTML等这样的静态内容。
[0065]在可替换的实现中,对码元的调用可决定退出内容检查方案。例如,计算设备可确定对码元的调用包括与该调用相关联的内容将免于内容检查方案的指示。因此,该码元可使用该内容被执行,而不用首先检查该内容以确定该内容是否不安全。这可使应用开发者能够在如果检查该内容可能被拒绝的情况下避开内容检查机制。
[0066]回到方框414,如果确定将内容传递到该码元不安全(“不安全”),则防止该内容被传递至该码元(方框406)。如果确定将内容传递至该码元是安全的(“安全”),则允许该内容被传递至该码元(方框410)。如上文所讨论的那样,该内容使用该码元来处理(方框412)。[0067]在可替换的实现中,应用可指示在允许内容被传递至特殊码元前,不安全的内容可通过移除该内容的不安全方面来清理。例如,应用108可在它的代码中指定(例如经由功能调用)不安全内容将被传递至内容检查模块132,然后其能够从该内容中移除不安全的特征(例如可执行代码)。经清理的内容然后可被传递至码元以进一步处理。
[0068]示例系统和设各
图5图示了包括如参考图1描述的计算设备102的示例系统500。示例系统500使得能够实现用于当在个人计算机(PC)、电视设备和/或移动设备上运行应用时的无缝用户体验的普遍存在的环境。在使用应用、玩视频游戏、观看视频等的同时,当从一个设备转换到下一个时,服务和应用在用于通用用户体验的所有三个环境中基本上类似地运行。
[0069]在示例系统500中,多个设备通过中央计算设备互连。中央计算设备可以在多个设备本地或者可远离多个设备地放置。在一个实施例中,中央计算设备可以是通过网络、因特网或其他数据通信链路与多个设备连接的一个或多个服务器计算机的云。在一个或多个实施例中,该互连架构使功能能跨多个设备投送以向多个设备的用户提供通用和无缝的体验。多个设备的每一个可具有不同的物理需求和能力,并且中央计算设备使用平台来使得能够实现既适配于设备又对所有设备通用的到设备的体验投送。在一个实施例中,创建一类目标设备,并且为通用类别的设备适配体验。一类设备可通过物理特征、使用类型或设备的其他通用特性来定义。
[0070]在各种实现中,计算设备102可例如为计算机502、移动504和电视506的使用采取各种不同的配置。这些配置的每一个包括可具有通常不同构造和能力的设备,因此计算设备102可根据不同设备类的一个或多个来配置。例如,计算设备102可实现为包括个人计算机、台式计算机、多屏幕计算机、膝上型计算机、上网本等的计算机502类设备。
[0071]计算设备102还可被实现为包括诸如移动电话、便携式音乐播放器、便携式游戏设备、平板计算机、多屏幕计算机等这样的移动设备的移动504类设备。计算设备102还可被实现为包括在放松的观看环境中具有或连接至一般较大屏幕的设备的电视506类设备。这些设备包括电视、机顶盒、游戏控制台等。在此描述的技术可由计算设备102的这些各种配置来支持,并且不限于在此描述的技术的特定示例。
[0072]云508包括和/或代表用于内容服务512的平台510。平台510抽象化云508的硬件(例如服务器)和软件资源的基础功能。内容服务512可包括应用和/或数据,所述应用和/或数据可在计算机处理在远离计算设备102的服务器上执行时被使用。内容服务512可被提供为因特网上的和/或通过订户网络(诸如蜂窝或W1-Fi网络)的服务。
[0073]平台510可抽象化资源和功能以将计算设备102与其他计算设备连接。平台510还可用于抽象化资源的缩放(scaling)以向对经由平台510实现的内容服务512的碰到的需求提供相应级别的缩放。因此,在互连的设备实施例中,在此描述的功能的功能实现可在整个系统500上分布。例如,功能可部分地在计算设备102上以及经由抽象化云508的功能的平台510来实现,如通过包括应用108、应用管理器模块118和内容检查模块132所示。
[0074]图6图示了可被实现为如参考图1和5描述的任意类型的计算设备以实现在此描述的技术的实施例的示例设备600的各种组件。设备600包括使得能够实现设备数据604(例如接收的数据、正在接收的数据、为广播调度的数据、数据的数据分组等)的有线和/或无线通信的通信设备602。设备数据604或其他设备内容可包括该设备的配置设置、在该设备上存储的媒体内容和/或与该设备用户相关联的信息。在设备600上存储的媒体内容可包括任意类型的音频、视频和/或图像数据。设备600包括经由其任意类型的数据、媒体内容和/或输入可得以接收的一个或多个数据输入606,例如用户可选的输入、消息、音乐、电视媒体内容、记录的视频内容和从任意内容和/或数据源接收的任意其他类型的音频、视频和/或图像数据。
[0075]设备600还包括通信接口 608,通信接口 608能够被实现为串行和/或并行接口、无线接口、任意类型的网络接口、调制解调器中的任意一个或多个,并可实现为任意其他类型的通信接口。通信接口 608提供设备600和通信网络之间的连接和/或通信链路,通过所述连接和/或通信链路,其他电子、计算和通信设备与设备600传送数据。
[0076]设备600包括处理各种计算机可执行指令以控制设备600的操作和实现在此描述的技术的实施例的一个或多个处理器610 (例如任意微处理器、控制器等)。可替换地或附加地,设备600可使用与一般地在612标识的处理和控制电路相结合实现的硬件、固件或固定逻辑电路中的任意一个或组合来实现。虽然未示出,但设备600可包括将各种组件耦合在该设备内的系统总线或数据传输系统。系统总线可包括不同总线结构中的任意一个或组合,例如存储器总线或存储器控制器、外围总线、通用串行总线和/或使用任意各种总线架构的处理器或局部总线。
[0077]设备600还包括计算机可读媒体614,例如一个或多个存储器组件,其示例包括随机存取存储器(RAM)、非易失存储器(例如只读存储器(ROM)、闪存、EPROM、EEPROM等中的任意一个或多个)和盘存储设备。盘存储设备可被实现为任意类型的磁或光存储设备,例如硬盘驱动、可记录和/或可重写压缩盘(⑶)、任意类型的数字多功能盘(DVD)等。设备600还可包括海量存储媒体设备616。
[0078]计算机可读媒体614提供数据存储机制来存储设备数据604,以及各种设备应用618和任意其他类型的信息和/或与设备600的操作方面相关的数据。例如,操作系统620可利用计算机可读媒体614被保持为计算机应用并在处理器610上执行。设备应用618可包括设备管理器(例如控制应用、软件应用、信号处理和控制模块、原产于特殊设备的代码、用于特殊设备的硬件抽象层等)。设备应用618还包括任意系统组件或模块以实现在此描述的技术的实施例。
[0079]在该示例中,设备应用618包括被示为软件模块和/或计算机应用的接口应用622和输入/输出模块624。输入/输出模块624代表被用来提供与被配置为捕捉输入的设备(例如触摸屏、追踪垫、摄像机、麦克风等)的接口的软件。可替换地或附加地,接口应用622和输入/输出模块624可被实现为硬件、软件、固件或其任意组合。另外,输入/输出模块624可被配置为支持多个输入设备,例如分别捕捉视觉和听觉输入的单独设备。
[0080]设备600还包括向音频系统628提供音频数据和/或向显示系统630提供视频数据的音频和/或视频输入-输出系统626。音频系统628和/或显示系统630可包括处理、显示和/或以其它方式再现音频、视频和图像数据的任意设备。视频信号和音频信号可经由RF谢频)链路、S视频链路、复合视频链路、分量视频链路、DVI (数字视频接口)、模拟音频连接或其他类似的通信链路从设备600传送到音频设备和/或到显示设备。在实施例中,首频系统628和/或显不系统630可被头现为设备600的外部组件。可替换地,首频系统628和/或显示系统630可被实现为示例设备600的集成组件。[0081] 结论
虽然已用特定于结构特征和/或方法动作的语言描述了本发明,但将理解在所附权利要求中限定的本发明不必受限于描述的特定特征或动作。相反地,这些特定的特征和动作作为实现要求保护的发明的示例形式而被公开。
【权利要求】
1.一个或多个计算机可读存储媒体,包括存储在其上的指令,所述指令响应于由计算设备的执行,导致计算设备: 为被准许调用计算设备的码元的应用的第一部分施加第一组内容处理策略,并且为不被准许调用所述码元的所述应用的第二部分施加第二组内容处理策略;以及 基于所述应用的哪一部分正在请求内容来确定是对内容应用所述第一组内容处理策略还是所述第二组内容处理策略。
2.如权利要求1所述的一个或多个计算机可读存储媒体,其中所述码元包括功能、子例程、方法、参数、属性或接口的其中之一或多个。
3.如权利要求1所述的一个或多个计算机可读存储媒体,其中所述第一组内容处理策略指定如果所述内容是不可信的,则所述内容不能包括可执行代码。
4.如权利要求1所述的一个或多个计算机可读存储媒体,其中所述第一组内容处理策略指定如果所述内容包括不可信内容并且所述应用的所述第一部分正在请求将所述不可信内容传递至所述码元之一,则将在所述不可信内容可能被传递到所述码元之一之前检查所述不可信内容以确定所述不可信内容是否安全。
5.如权利要求1所述的一个或多个计算机可读存储媒体,其中所述第一组内容处理策略指定从所述计算设备本地检索的内容将使用特定的字符编码格式来编码,或者该内容将被防止被解析。
6.一种方法,包括: 检测在计算设备上执行的应用包括将内容传递至所述计算设备的码元的请求;和 响应于所述检测,由所述计算设备基于所述请求是否来自于被准许调用所述码元的所述应用的部分来确定是否允许所述请求。
7.如权利要求6所述的方法,其中基于所述码元使得能够实现对所述计算设备的特定功能的访问,所述码元作为预指定码元组的一部分被包括。
8.如权利要求6所述的方法,进一步包括响应于所述请求来自于被准许调用所述码元的所述应用的部分的确定,基于所述内容的源和所述内容的内容类型来确认所述内容是否可被传递至所述码元。
9.如权利要求8所述的方法,进一步包括基于所述内容的源远离所述计算设备并且所述内容类型指示所述内容包括可执行代码的确定,确认所述内容不可被传递至所述码元。
10.如权利要求6所述的方法,进一步包括响应于所述请求来自于不被准许调用所述码元的所述应用的部分的确定,防止所述内容被传递至所述码元。
【文档编号】G06F21/62GK103765431SQ201280043111
【公开日】2014年4月30日 申请日期:2012年9月4日 优先权日:2011年9月7日
【发明者】D.L.小里斯尼, S.B.格雷厄姆, M.乔戴因, S.伊斯金, D.A.罗斯 申请人:微软公司