书签 分享 收藏 举报 版权申诉 / 31

安全和可扩展策略驱动的应用程序平台.pdf

  • 上传人:e2
  • 文档编号:4576841
  • 上传时间:2018-10-21
  • 格式:PDF
  • 页数:31
  • 大小:1.35MB
  • 摘要
    申请专利号:

    CN200880124688.7

    申请日:

    2008.12.17

    公开号:

    CN101911054A

    公开日:

    2010.12.08

    当前法律状态:

    授权

    有效性:

    有权

    法律详情:

    专利权的转移IPC(主分类):G06F 17/00变更事项:专利权人变更前权利人:微软公司变更后权利人:微软技术许可有限责任公司变更事项:地址变更前权利人:美国华盛顿州变更后权利人:美国华盛顿州登记生效日:20150430|||授权|||实质审查的生效IPC(主分类):G06F 17/00申请日:20081217|||公开

    IPC分类号:

    G06F17/00; G06F15/16

    主分类号:

    G06F17/00

    申请人:

    微软公司

    发明人:

    S·伊萨克斯; S·M·约克; R·K·洛根

    地址:

    美国华盛顿州

    优先权:

    2008.01.11 US 61/020,597; 2008.05.09 US 12/118,321

    专利代理机构:

    上海专利商标事务所有限公司 31100

    代理人:

    张欣;钱静芳

    PDF完整版下载: PDF下载
    内容摘要

    一种评估脚本内容的安全性的系统。处理器执行用于为网页中的脚本内容定义策略的计算机可执行指令。该脚本内容提供用户与网页内的其他内容之间的交互。所定义的策略指示脚本内容的执行边界。处理器还对照所定义的策略中的执行边界来评估脚本内容。在运行时,处理器响应于该评估来转换网页的至少一部分。一界面传送具有脚本内容的经转换的部分的网页以在主机设备上的应用程序中呈现。

    权利要求书

    1: 一种评估 web 交互式组件的方法, 所述方法包括 : 为内容持有者中的组件定义策略, 在呈现所述组件时所述组件提供用户与所述内容持 有者中的其他内容之间的交互, 所定义的策略指示所述组件在运行时期间的执行边界, 所 述执行边界定义所述组件的资源访问 ; 传送具有所述组件的内容持有者以在主机设备上的应用程序中呈现 ; 响应于所述应用程序所进行的呈现, 截取来自所述组件的对服务器的资源的请求, 其 中所述资源向所述组件提供服务以与以下至少一个进行交互 : 所述用户和来自所述内容持 有者的其他内容 ; 对照所定义的策略中的执行边界来评估所截取的请求 ; 以及 响应于所评估的请求来向所述服务器或所述应用程序提供动态解决方案。
    2: 如权利要求 1 所述的方法, 其特征在于, 提供所述动态解决方案包括以下至少一个 : 在所请求的资源能在所述执行边界内执行的情况下准许所述请求, 在所请求的资源不能在 所述执行边界内执行的情况下拒绝所述请求, 在准许所述请求之前扩充所述请求, 响应于 另一请求在提供替换解决方案之前用该另一请求替换所述请求, 以及从所述用户请求用于 准许或拒绝所述请求的用户输入。
    3: 如权利要求 1 所述的方法, 其特征在于, 还包括提供用于接收来自所述组件的所述 请求的应用程序编程接口 (API), 并且其中截取包括截取来自所述 API 的对所述服务器的 资源的请求。
    4: 如权利要求 1 所述的方法, 其特征在于, 还包括实例化所述组件的多个实例。
    5: 如权利要求 4 所述的方法, 其特征在于, 截取包括截取来自所述组件的所述多个实 例化实例中的每一个的对服务器的资源的请求。
    6: 如权利要求 1 所述的方法, 其特征在于, 还包括响应于所述评估修改来自所述组件 的请求, 所述修改所述请求包括重写所述请求以使得所述请求处于基于所定义的策略的执 行边界内。
    7: 一种评估脚本内容的安全性的系统, 所述系统包括 : 被配置成执行计算机可执行指令的处理器, 所述指令用于 : 为网页中的所述脚本内容定义策略, 所述脚本内容提供用户与所述网页内的其他内容 之间的交互, 所定义的策略指示所述脚本内容的执行边界, 所述执行边界定义所述脚本内 容的资源访问 ; 对照所定义的策略中的执行边界来评估所述脚本内容 ; 以及 在运行时, 响应于所述评估来转换所述网页的至少一部分 ; 以及 用于传送具有所述脚本内容的所述经转换的部分的所述网页以在主机设备上的应用 程序中呈现的界面。
    8: 如权利要求 7 所述的系统, 其特征在于, 所述处理器还被配置成响应于所述评估向 所述服务器或所述应用程序提供动态解决方案。
    9: 如权利要求 8 所述的系统, 其特征在于, 所述动态解决方案包括以下至少一个 : 在所 述网页的所述经转换的部分能在所述执行边界内执行的情况下准许请求, 在所述网页的所 述经转换的部分不能在所述执行边界内执行的情况下拒绝请求, 在准许请求之前扩充所述 请求, 响应于另一请求在提供替换解决方案之前用该另一请求替换所述请求, 以及从所述 2 用户请求用于准许或拒绝来自所述网页的所述经转换的部分的请求的用户输入。
    10: 如权利要求 8 所述的系统, 其特征在于, 还包括用于接收来自所述脚本内容的请求 的应用程序编程接口 (API), 并且所述处理器执行所述 API 以处理接收到的对服务器的资 源的请求。
    11: 如权利要求 7 所述的系统, 其特征在于, 所述处理器还被配置成将所述脚本内容的 至少一部分转换成要在运行时执行的函数的属性值。
    12: 如权利要求 7 所述的系统, 其特征在于, 所述处理器还被配置成实例化所述脚本内 容的多个实例。
    13: 如权利要求 7 所述的系统, 其特征在于, 所述处理器还被配置成在转换期间修改所 述脚本内容, 其中所述处理器重写所述脚本内容以符合另一脚本内容, 并且所述另一脚本 内容处于基于所定义的策略的执行边界内。
    14: 如权利要求 11 所述的系统, 其特征在于, 所述处理器被配置成将所述脚本内容的 所述经转换的部分替换成映射另一脚本内容的另一属性值, 所述另一属性值当在运行时执 行时落入所定义的策略的执行边界内。
    15: 一种保护 web 交互式函数的方法, 所述方法包括 : 为网页中的所述 web 交互式函数定义策略, 所述 web 交互式函数向用户和所述网页中 的其他内容提供交互, 所定义的策略指示所述 web 交互式函数的执行边界, 所述执行边界 定义所述 web 交互式函数的资源访问 ; 传送所述网页以在主机设备上的应用程序中呈现 ; 响应于所述应用程序所进行的呈现, 监视所述 web 交互式函数对与所述用户或所述网 页中的其他内容的交互的请求 ; 截取所监视的来自所述 web 交互式函数的对服务器的资源的请求, 其中所述资源向所 述 web 交互式函数提供服务以与以下至少一个交互 : 所述用户和来自所述网页的其他内 容; 对照所定义的策略中的执行边界来评估所截取的请求 ; 以及 响应于所述评估来向所述服务器或所述应用程序提供动态解决方案。
    16: 如权利要求 15 所述的方法, 其特征在于, 提供所述动态解决方案包括以下至少一 个: 在所请求的资源能在所述执行边界内执行的情况下准许所述请求, 在所请求的资源不 能在所述执行边界内执行的情况下拒绝所述请求, 在准许所述请求之前扩充所述请求, 响 应于另一请求在提供替换解决方案之前用该另一请求替换所述请求, 以及从所述用户请求 用于准许或拒绝所述请求的用户输入。
    17: 如权利要求 15 所述的方法, 其特征在于, 还包括提供用于接收来自所述函数的所 述请求的应用程序编程接口 (API), 并且其中截取包括截取来自所述 API 的对资源的请求。
    18: 如权利要求 15 所述的方法, 其特征在于, 还包括在所述应用程序呈现多个网页时 实例化所述函数的多个实例。
    19: 如权利要求 18 所述的方法, 其特征在于, 截取包括截取来自所述组件的所述多个 实例化实例中的每一个的对所述服务器的资源的请求。
    20: 如权利要求 15 所述的方法, 其特征在于, 还包括响应于所述评估修改来自所述函 数的请求, 所述修改所述请求包括重写所述请求以使得所述请求处于基于所定义的策略的 3 执行边界内。

    说明书


    安全和可扩展策略驱动的应用程序平台

        背景
         在因特网上可获得内容在近年来经历了爆炸式的转变。 网页中的给早期在线用户 留下印象的静态文本或静止图像已被动态动画、 丰富的多媒体视频剪辑、 以及动态网页布 局所代替。 另外, 网页中的内容在运行时变成交互式的 ; 用户可以使用输入设备 ( 例如鼠标 或指示笔 ) 或用户的手指来移动或重新安排网页内的对象以提供丰富的自定义。
         该交互式开发中的驱动力之一是对可由应用程序或软件 ( 例如, web 浏览器 ) 执行 的计算机可执行指令形式的脚本内容在运行时或接近运行时的使用。 这样的开发的一个示 例是混搭 (mashup), 其是组合来自各种源的代码和行为以用于集成在体验内或用于创建新 体验的 web 应用程序。然而, 由于浏览器的性质, 随着在呈现混搭之时或在呈现混搭之前执 行混搭, 大多数混搭在主站点和网页内的第三方代码之间创建了暗含的信任关系。这一信 任关系将网站和底层 web 业务模型置于危险之中。另外, 因为混搭代码或脚本的交互式性 质, 该信任关系也可将网页和 / 或本地设备上呈现的用户个人或隐私内容置于危险之中。
         概述
         本发明的各实施例通过定义用于网页的策略驱动脚本内容的行为的策略以使得 本发明的各实施例可以在将脚本内容呈现给用户之时或将脚本内容呈现给用户之前监视、 实施、 修改、 或补充脚本内容的行为来解决以上缺点。在另一实施例中, 将所定义的策略提 供给本地设备以使得在该本地设备处执行的浏览器可以方便地在本地级比较脚本内容安 全边界。 替换实施例提供用于策略驱动和策略实施的脚本执行的平台和围绕尤其是在基于 web 的混搭上下文中的内容引用包含 (transclusion)、 组件开发、 以及 API 可扩展性的策略 场景。替换实施例还提供自动地支持多实例的能力并提供范围保护。另外, 本发明的其他 方面监视并记录用户与脚本内容的交互, 以使得可以记录服务质量 (QOS) 度量或数据并将 其报告给该脚本内容的发行者、 创作者或提供者。
         提供本概述是为了以简化的形式介绍将在以下详细描述中进一步描述的一些概 念。本概述不旨在标识所要求保护的主题的关键特征或必要特征, 也不旨在用于帮助确定 所要求保护的主题的范围。
         其他特征的一部分将是显而易见的, 一部分将在下文中指出。
         附图简述
         图 1 是示出根据本发明的一实施例的用于保护网页内的脚本内容的系统的示例 性实施例的框图。
         图 2 是示出根据本发明的一实施例的用于定义脚本内容的执行边界的示例性策 略的框图。
         图 3-9 是示出根据本发明的一实施例的脚本内容交互的屏幕显示的示例性框图。
         图 10-11 是示出根据本发明的一实施例的脚本内容的服务质量的管理和测量的 框图。
         图 12 是示出根据本发明的一实施例的与保护脚本内容相关联的示例性服务质量 数据的框图。
         图 13 是示出根据本发明的一实施例的保护网页内的脚本内容的操作的示例性流程图。 图 14-15 是示出根据本发明在附录 A 中描述的一实施例的保护网页内的脚本内容 的替换实施例的框图。
         图 16 是示出根据本发明的一实施例的保护客户机设备上的网页内的脚本内容的 操作的框图。
         附录 A 示出安全和可扩展策略驱动的应用程序平台的示例性实现。
         相应的附图标记在全部附图中指示相应的部分。
         详细描述
         本发明的各实施例向页面内脚本内容或函数提供安全, 并向在网页内显示或呈现 的用户内容提供适当的保护。 现在参考图 1, 示出了根据本发明的一实施例的用于保护内容 持有者 104 内的脚本内容 102 的系统 100。 系统 100 包括可由客户机 108 经由通信网络 ( 未 示出 ) 访问的服务器 106。在一个示例中, 服务器 106 包括联网计算机的集合、 计算机、 web 服务器、 企业服务器、 数据库服务器、 认证服务器、 其组合、 或以上的集合。 在一个实施例中, 服务器 106 可以是向用户 114 提供各种服务的服务器的联合集合。在另一实施例中, 服务 器 106 包括处理器 110, 处理器 110 可以是处理单元、 微处理器、 中央处理单元、 或以上示例 的集合 / 组合。在一个示例中, 服务器 106 提供各种服务, 如基于 web 的电子邮件 (e-mail) 帐户、 聚集用户 114 的各种个性化信息的集中式 web 门户页面, 等等。在另一示例中, 服务
         器 106 以超文本标记语言 (HTML)、 可扩展标记语言 (XML)、异步 JavaScript和 XML(AJAX) 等的形式向用户 114 提供交互式内容和非交互式内容两者。可以理解, 可以 提供诸如多媒体内容等其他内容而不背离本发明的各方面的范围和精神。
         客户机 108 包括与用户 114 相关联的任何客户机设备, 如个人计算机 (PC)( 例如, 台式计算机或膝上型计算机 )、 便携式数字设备、 个人数字助理 (PDA)、 蜂窝电话、 便携式媒 体播放器等。 通信网络包括便于两个或更多个计算机之间的连接的任何有线或无线通信网 络。
         在一个示例中, 服务器 106 被配置成向用户 114 提供内容持有者 104 以在客户机 108 处呈现或显示。例如, 内容持有者 104 可以由安装在客户机 108 上的 web 浏览器应用 程序 (WBA)118 呈现。在一个实施例中, 内容持有者 104 可以是网页、 ASCII 文本页、 具有嵌 入式标记语言内容的网页、 具有嵌入式媒体内容的网页等。在一个实施例中, WBA 118 是 独立应用程序或软件。在另一实施例中, WBA 118 可以是能够呈现以诸如超文本标记语言 (HTML)、 可扩展标记语言 (XML) 等标记语言编写的内容的程序或软件的一部分或组件。还 可以理解, WBA 118 可以是在在线环境中呈现其他内容的应用程序和组件, 这些内容诸如图 形文件 ((.jpg、 .tiff、 .pdf 等 )、 媒体文件 (.wma、 .mp3、 .mp4 等 ), 等等。
         内容持有者 104 包括具有内容的一个或多个组件。在一个示例中, 一组件可包括 脚本内容 102 和 / 或非脚本内容 116。 在一个示例中, 脚本内容 102 包括计算机可执行指令、 代码、 函数、 可执行表达式、 或其他可执行程序设计语言。脚本内容 102 可以经由函数调用 或应用程序编程接口 (API) 请求或调用来引起执行启用。 执行启用可以从服务器 106、 客户 机 108、 或 WBA 118 请求资源。另一方面, 非脚本内容 116 包括不可执行或不引起执行结果 的内容。例如, 文本语句 ( 例如, “Today’ s news( 今天新闻 )...” ) 可以是非脚本内容 116,但文本语句 ( 例如, echo(Today’ s news...) ; document.write(“Today’ s news...” ); ) 可以是脚本内容 102, 因为在执行该语句时, 该文本语句造成超过仅仅显示该文本语句本身 的函数结果。
         系统 100 还包括策略引擎 120, 策略引擎 120 包括用于定义脚本内容的执行边界的 一个或多个策略。在一个示例中, 策略引擎 120 包括用于存储一个或多个策略的存储介质。 现在参考图 2, 一示图示出存储在策略引擎 120 中的简单化的策略 202。在一个示例中, 策 略 202 中的每一个都定义特定脚本内容或该脚本内容中包括的函数的执行边界。在另一示 例中, 策略 202-1 包括被称为 “addFolder()( 添加文件夹 )” 204 的脚本内容或函数的执行 边界, 而策略 202-2 包括被称为 “openWindow()( 打开窗口 )” 206 的脚本内容或函数的执行 边界。可以理解, 其他函数或脚本内容可以包括在策略引擎 120 中而不背离本发明的范围 或精神。还可以理解, 在开发、 扩充、 修改、 或升级附加函数或脚本内容时, 策略引擎 120 可 被周期性地全部或部分更新。在一替换实施例中, 执行边界指示可由脚本内容或函数访问 的内容或资源的限制。
         例如, 假定策略 202-1 定义脚本内容 “addFolder()” 的执行边界。策略 202-1 中 的执行边界可以定义脚本内容 “addFolder()” 可以在向服务器 106 发送了请求之后在 WBA 118 实例内的运行时期间执行。同样, 边界可以进一步将脚本内容 “addFolder()” ( 其创建 文件夹或目录 ) 的结果限制为只限于在 WBA118 将用户 114 的信息从服务器 106 呈现在客 户机 108 上时访问与用户 114 相关联的存储空间。addFolder() 函数不能访问 ( 例如, 读权 限 ) 来自该存储空间的其他信息。图 3-9 通过用户 114 的基于 web 的电子邮件帐户的简化 示例进一步示出本发明的各方面。
         例如, 在图 3 中, 显示窗口 302 显示安装在客户机 108 上的 WBA 118 的实例。显示 窗口 302 包括 web 地址栏 304 和显示内容持有者 104 的内容的内容显示区域 306。可以包 括其他控件, 诸如窗口大小控件 308( 其包括窗口最小化控件、 窗口最大化控件、 以及窗口 关闭控件 )、 搜索控件 310、 导航控件 312 等。还可以理解, 可以添加或实现其他控件而不背 离本发明的范围或精神。
         在其中 WBA 118 向用户 114 显示个人基于 web 的电子邮件收件箱的这一示例中, 内容显示区域 306 还包括侧窗格 314 和列出用户 114 的收件箱中的一个或多个电子邮件消 息的主消息窗格 316。作为说明, 侧窗格 314 显示将用户 114 链接到电子邮件帐户 user@ user-mail.com 的收件箱内的一个或多个目录或文件夹的多个控件、 按钮、 或链接。 例如, 这 些文件夹包括 “收件箱” 文件夹、 “草稿” 文件夹、 “已发送项目” 文件夹、 “垃圾箱” 文件夹、 以 及 “已删除” 文件夹。侧窗格 314 还包括在 “文件夹” 标题下示出一个或多个个性化文件夹 或目录的部分。在该图示中, 不存在用户 114 的个性化文件夹或目录。显示窗口 302 还在 主消息窗格 316 中显示电子邮件消息的列表。如图所示, 显示窗口 302 显示或呈现用户的 收件箱的布局并还显示其从服务器 106 提供的内容。换言之, 只要内容或用户收件箱的内 容的布局能由 WBA 118 正确地识别, 显示窗口 302 就将相应地在内容显示区域 306 中向用 户 114 呈现该布局和内容。还可以理解, 侧窗格 314 和主消息窗格 316 可以取决于内容持 有者 104 的布局来修改。
         同样, 在所示示例中, 用户 114 接收来自 “购物” 的具有主题行 “减价 20%在线销 售” 的电子邮件消息 320。现在参考图 4, 一示图示出本发明的各实施例如何通过控制所显示的内容内的函数调用来采用策略驱动的应用程序平台, 以使得用户敏感或隐私内容得到 保护。 在该示例中, 假定消息 320 包括典型的非脚本内容和脚本内容。 非脚本内容可包括对 于用户广告购物销售的文本消息。消息 320 的脚本内容包括尝试向用户 114 的电子邮件帐 户添加被称为 “购物” 的文件夹的一个或多个函数。这样的 “购物文件夹” 将为用户 114 保 持销售交易、 优惠券、 或其他销售消息。可以在 “打开” 消息 320 时或在一短暂延迟后激活或 调用脚本内容。在一个示例中, 用户 114 可以通过使用输入设备 ( 例如, 鼠标或指示笔 ) 或 用户的手指来打开电子邮件消息 320。在一个实施例中, 在用户 114 突出显示消息 320 时, 如通过将鼠标图形光标悬停在该消息上方或将位置标记移动到 ( 例如, 使用键盘上的箭头 键 ) 电子邮件消息 320 的位置, 电子邮件消息 320 可被自动打开。可以理解, 可以采用突出 显示或聚焦消息 320 以打开消息 320 来查看其内容的其他手段而不背离本发明的范围或精 神。
         当前技术将执行脚本内容而不进行干涉。换言之, 如果脚本内容的函数指定打开 显示窗口, 则显示窗口将被打开。用户 114 将不具有对如何执行脚本内容的控制。实际上, 服务器 106 也不具有对该内容的控制, 因为内容在 web 或在线环境中的呈现或显示通常被 委托给 WBA 118。 如此, 用户的收件箱的隐私或内容或其他内容受到任何所显示的页面的脚 本内容的闪念 (whim) 的控制。 本发明的各实施例定义各个策略来监视和 / 或截取脚本内容, 以使得脚本内容只 可在由所定义的策略指定的定义边界内执行。 本发明的各方面还提供响应于评估所截取的 脚本内容调用或函数的动态解决方案。动态解决方案可包括以下至少一个 : 在所请求的资 源能在执行边界内执行的情况下准许该请求, 在所请求的资源不能在执行边界内执行的情 况下拒绝该请求, 在准许该请求之前扩充该请求, 响应于另一请求在提供替换解决方案之 前用该另一请求替换该请求, 以及从用户请求用于准许或拒绝该请求的用户输入。
         在一个实施例中, 用户 114 还可以涉及进一步限制脚本内容的执行。现在再次参 考图 4, 在打开消息 320 时并且在执行消息 320 的脚本内容时, 消息 320 的脚本内容被传递 到策略引擎 120 以供评估并且用户 114 可以帮助或参与该评估。
         基于以上示例, 一旦消息 320 被 “打开” , 消息 320 的脚本内容就尝试使用诸如 “addFolder()” 等函数来向用户 114 的电子邮件帐户添加被称为 “购物” 文件夹的文件夹。 并非像现有技术那样执行脚本内容, 本发明的各方面使脚本内容和 / 或函数调用穿过策略 引擎 120。如图 2 所示, 策略引擎 120 包括关于处理函数调用的一个或多个规则。在该示 例中, 策略引擎 120 可被设计成截取所有 addFolder() 函数调用并提取脚本的内容。同时, 策略引擎 120 触发或启用替换函数或附加函数的执行或运行, 如用于向用户 114 打开窗口 322 的函数 “alertWindow()” ( 警告窗口 )。alertWindow() 函数希望在 WBA 118 的执行环 境内打开窗口 322 以向用户 114 显示消息和交互式控件。所显示的消息和 / 或交互式控件 符合或表示从消息 320 的脚本内容提取的内容。
         在该示例中, 替换 alertWindow() 函数希望通过显示以下消息来打开窗口警告用 户 114 : “添加包括来自您最喜爱的商店的优惠券的 “购物” 文件夹? ” 用户 114 可以通过点 击 “是” 按钮 340 来选择添加文件夹或通过点击 “否” 按钮 342 来拒绝该请求。如果用户 114 选择 “是” 按钮 340, 则新个性化 “购物” 文件夹 334 可被添加到用户的个性化文件夹部分, 如在图 5 中所看到的。因此, 用户 114 现在是准许或拒绝消息 320 的脚本内容的原始意图
         ( 例如, 执行 addFolder() 函数 ) 的决定过程的一部分。
         在另一实施例中, 消息 320 的脚本内容可以调用对服务器 106、 处理器 110、 客户机 108、 或 WBA 118 的资源的应用程序编程接口 (API) 调用。在该情形中, 本发明的各实施例 还可以截取这样的 API 调用并使它们穿过策略引擎 120。 在一个实施例中, 在带有或不带有 对于用户 114 的任何通知的情况下, 策略引擎 120 可以选择允许、 拒绝、 扩充、 或替换任何调 用的行为。这些调用可以源自现有 API 或只经由策略来定义 ( 例如, 它们不必是预先存在 的 API)。
         例如, 图 6 示出本发明的一方面, 其中自动地拒绝来自消息的脚本内容的请求 或调用但向用户 114 通知这一拒绝。在该图示中, 本发明的各方面使策略引擎 120 能够 自动地拒绝所有脚本启用或函数调用。在这样做时, 修改对用户的通知消息 332 以显示 “Shopping-for-you.com 请求向您的电子邮件帐户添加文件夹并且该请求被自动拒绝。如 果您想要准许这一请求, 请点击 “准许” 。否则, 请点击 “继续” 。 ” 响应于这一通知向用户 114 呈现了 “准许” 按钮 344 和 “继续” 按钮 346。换言之, 一旦设定了自动拒绝策略设置则本发 明的各实施例向用户 114 提供在一次性的基础上作出决定的能力。在另一实施例中, 通知 332 可包括其他选项, 如 “记住我的设置” 、 “在两星期内记住我的设置” 、 “总是这样做” 、 “复 位我先前的决定” 等 ( 如选项 370“将来总是采取这一动作” )。
         在该替换中, 本发明的各方面还被配置成自动地准许请求或函数调用, 并且在图 7 中同样向用户 114 给出通过点击 “拒绝” 按钮 348 来更改这样的自动动作或 “继续” 按钮 350 来继续动作的默认过程的机会。
         在另一实施例中, 策略引擎 120 可被配置成修改所截取的函数调用。现在参考图 8, 如果本发明的各方面被实现成修改所截取的函数调用或 API 请求, 则消息 332 现在显示 以下内容 : “Shopping-for-you.com 请求向您的电子邮件帐户添加 “购物” 文件夹但看来您 已经具有名为 “购物” 的文件夹了。该请求被自动修改成拒绝该请求。如果您想要进一步 修改该请求, 请点击 “修改” 。否则, 请点击 “继续” 。 ” 换言之, 该修改还可以与对该请求的拒 绝相耦合。如此, 用户 114 有机会通过点击 “修改” 按钮 352 来修改该请求或通过点击 “继 续” 按钮 354 以进行策略引擎 120 中的策略或规则所定义或设定的修改。类似地, 策略引擎 120 中的策略还可以将修改与对该请求的自动准许相耦合, 如图 9 中所示。 在图 9 中, 向用户 114 呈现消息 332, 指示该请求已被使用向用户的个性化文件夹部分添加文件夹 “购物 - 复 件” 来自动地替换了。用户 114 同样有机会通过点击 “继续” 按钮 356 来同意该修改或通过 点击 “取消” 按钮 358 来取消该修改。在又一实施例中, 对所截取的请求的修改可包括重写 所截取的请求, 以使得脚本内容 / 请求处于基于所定义的策略的执行边界内。
         在一个实施例中, 在执行 WBA 118 时, 可以实现 WBA 118 的一个或多个实例, 并且 本发明的各方面在运行时或执行时间期间正确地区分每一实例。例如, 用户 114 可具有 同时运行的一个或多个 WBA118 窗口。如此, 如本发明的各方面所例示的, 本发明在当前 WBA 118 窗口内的实例化需要所有代码首先经由简单变换来标准化。这一变换重定向所有 API 调用使其穿过策略引擎 118。这一步骤尝试迫使首先调用策略引擎并且还注入适当的 QOS( 服务质量 ) 测试 ( 稍后讨论 )。作为又一优点, 脚本内容的所实例化的实例中的每一 个具有独立和分开的执行边界。
         在一个实施例中, 只要从消息 320 的脚本内容调用 API, 就对照策略引擎 120 来定向它。策略引擎 120 检查以下至少一个 : 作出请求的对象的类型、 被调用的 API 的类型 ( 属 性、 方法、 工厂、 或删除 ), 并将决定过程传递到策略脚本或规则中的至少一个。策略脚本可 以选择拒绝访问 ( 默认 )、 允许、 扩充 ( 或取决于上下文来动态地选择拒绝或允许 )、 或替换 和 / 或定义该行为。
         在一个示例中, 策略可被堆叠 : 任何单个 API 启用可被映射到 0 到 n 个策略或规 则。策略可以按定义的次序执行。例如, 第一次序策略允许访问属性 ( 例如, 标题属性 ), 并 且后续策略可通过只有在 102-1 的上下文内的一个元素上才允许访问该属性来进一步约 束规则。
         另一示例可以允许启用一种方法 ( 例如, 警告 ), 其中后续策略覆盖警告的默认行 为以在状态栏上显示而非经由提示来显示。
         如此, 在用户 114 经由 WBA 118 在线查看的内容或内容持有者包括脚本函数、 可执 行码和 API 请求时, 本发明的各方面向用户 114 提供一层保护。在一个现有示例中, 基于 web 的电子邮件收件箱的用户具有许多方便特征是常见的, 如通过点击诸如 “添加到联系 人” 等链接来自动地将电子邮件地址添加到用户的联系人文件夹。一些电子邮件服务提供 者通过向用户提示用于准许该许可的分开页面来实现这一方便特征。用户一点击 “添加到 联系人” 链接, 一些提供者就将自动地执行所请求的动作。然而, 一些提供者将自动地执行 所请求的动作而无需用户点击 “添加到联系人” 链接 ; 提供者假定用户希望添加联系人并进 行添加联系人而不询问用户。如此, 用户不具有对该用户的联系人文件夹中的私人信息的 控制。本发明的各实施例尝试通过截取来自内容持有者 104 的脚本内容的函数调用或执行 请求并在使得用户涉入之前评估该函数调用来减轻当前系统的这一问题和缺点。 在另一实施例中, 策略引擎 120 的副本在客户机 108 上实例化或被复制到客户机 108, 以使得对函数调用的截取可以在客户机 108 本地完成。换言之, 本发明的各实施例使 得 WBA118 能够当在运行时呈现或显示内容持有者 104 时监视内容持有者 104 的脚本内容 并截取函数调用或 API 调用。可由客户机和 WBA 118 在本地访问的策略引擎 120 评估所截 取的函数调用或请求。WBA 118 接着可根据所定义的策略来向用户 114 呈现任何后续 UI。 在另一实施例中, WBA 118 或客户机 108 将扩充或执行内容持有者 104 的脚本内容的结果 进一步传递到服务器 106。 使用图 3 作为示例, 在消息 320 希望向用户的个性化文件夹列表 或部分添加文件夹时, WBA 118 或客户机 108 可以将用户的判定传递回服务器 106 以将 “购 物” 文件夹添加到用户的收件箱文件夹列表或拒绝该请求。
         在一替换实施例中, 可能不存在来自用户或如图 4-9 所示的决策的反馈。例如, 内 容持有者 104 可以只是显示内容和广告的网页。然而, 内容持有者 104 还包括脚本内容, 如 在呈现或显示内容持有者 104 时执行动态操作。例如, 假定内容持有者 104 是具有文本内 容 ( 例如, 非脚本内容 ) 和脚本内容的网页。脚本内容可以嵌入在诸如电影剪辑等动画对 象或诸如图片等图形对象中。这些动画对象或图形对象可以是在线广告的一部分, 并且脚 本内容可以尝试从内容持有者 104 的其他部分产生效果, 内容持有者 104 可以由或不由服 务器 106 管理。如此, 当呈现或显示在线广告时, 随后显示或呈现脚本内容。然而, 来自脚 本内容的关于内容持有者 104 的其他部分的合乎需要的效果可能使 WBA 118 崩溃、 使客户 机 4108 崩溃、 或造成其他不合需要的事件。
         现在参考图 10 来作为以上示例的说明, 一框图示出根据本发明的一实施例的脚
         本内容的服务质量的管理和测量。图 10 示出显示在 WBA 118 的内容显示区域 306 的滑雪 旅行或滑雪度假广告 402。在一个示例中, 广告 402 可以是诸如网页等内容持有者的一部 分。网页还包括在该网页上显示天气预报信息的天气预报模块 404。也可以显示其他内容 或模块, 如新闻更新模块 406 和技术更新模块 408。每一模块可具有与其相关联的元数据 以标记或标识该模块的特征或属性。广告 402 还包括含有可执行码和函数调用的脚本内容 410。在该示例中, 脚本内容 410 被设计成将滑雪胜地天气预报信息添加到内容持有者中的 相关内容, 以使得用户可以快速查看靠近该用户的当前显示页上可用的位置处的滑雪胜地 或具滑雪吸引力的地点的天气情况是什么。一旦添加了天气预报信息, 广告 402 就将动画 显示内容以示出所广告的滑雪胜地的图片。
         如此, 脚本内容 410 可以尝试读模块 404 的内容以查看用户想要了解天气的城市。 这一尝试将触发广告 402 来显示最接近用户感兴趣的城市的滑雪胜地的广告。本发明的各 实施例可准许这一尝试 / 动作或者阻塞或抑制这一尝试 / 动作或操作。 如果被批准了许可, 则许可广告 402 以查看有针对性的广告。另一方面, 广告 402 可被抑制而免于显示有针对 性的广告并可以显示通用广告, 如 “美国顶级滑雪胜地” , 如图 11 所示。如此, 本发明的各实 施例向用户提供干涉或参与决策的机会。 本发明的各方面可以测量这样的脚本内容的有效性以向内容提供者提供有效反 馈。现在参考图 12, 一框图示出根据本发明的一实施例的与保护脚本内容相关联的示例性 服务质量数据 502。通过截取来自脚本内容的每一个函数调用、 API 请求等, 本发明的各实 施例可以正确地评估这些请求并且该评估被正确地记录在存储器区域 122 中。例如, 图 12 示出可被收集并转发到内容提供者的示例性服务质量度量。例如, 服务质量数据 502 包括 各个字段, 诸如 “拒绝次数” 、 “修改次数” 、 “替换次数” 、 “用户修改次数” 、 “与其他脚本内容 的交互” 、 以及 “不稳定事件” 。 。在图 10-11 所示的示例中, 对广告 402 的脚本内容的拒绝 被当作 “不稳定事件” 。在另一实施例中, WBA 118 或客户机 108 可以记录由于不能显示内 容持有者中的内容而造成的 WBA 118 非预期异常或崩溃。这一记录或日志还可被转发到服 务器 106 以收集 “与其他脚本内容的交互” 的数据。在又一示例中, 可以响应于截取和评估 来监视、 记录、 并存储脚本内容、 WBA 118、 客户机 108 和 / 或服务器 106 之间的执行活动。 可以监视、 评估、 测量、 并稍后向脚本内容的提供者提供各执行活动, 诸如所提供的解决方 案与在线内容的其他部分之间的活动 ; 所提供的解决方案与在线内容的脚本内容之间的活 动; 所提供的解决方案与用户之间的活动 ; 以及所提供的解决方案、 脚本内容与 WBA 118 等 之间的活动等。还可以理解, 可以定义其他服务质量度量并收集相关数据而不背离本发明 的范围和精神。
         在又一实施例中, 策略引擎 120 可具有中间截取的所有属性、 方法启用、 以及对象 工厂, 其中在执行调用之前进行了确认。确认可以是动态的 ( 其不仅仅是打开和关闭 ) 并 且决定过程可以考虑所有细节。例外, 策略引擎 120 自动地将不可靠代码封装在其自己的 可被多次实例化的沙箱中, 每一次实例化都可能具有其自己的唯一覆盖策略。
         各替换实施例包括提供超过只进行安全保护的策略。 策略之间的差异可以在执行 系统 ( 例如, 浏览器 ) 之间标准化, 并且策略还可以用新 API 来扩展默认能力或使隐错或其 他问题对开发者透明。
         对于基于 web 的可脚本化内容, 在应用策略之前, 资源 ( 例如, HTML、 CSS、 以及脚
         本 ) 当前需要在服务器侧转换。这一转换不是确认步骤, 而仅仅是使客户机侧策略能够在 执行时得到应用。可以想到, 各替换实施例可以使该转换步骤成为 “发布” 或 “呈现” 内容 的更大过程的一部分, 连同代码确认、 版本化、 作者简档等。
         尽管通常是在浏览器或 WBA 118 的上下文中查看的, 但围绕混搭的所有上述挑战 适用于其中在更大应用程序内执行不可靠内容 ( 不管它是脚本、 DLL 等 ) 的任何环境。因 此, WBA 118 应仅被看作一个可能的实例。
         与传统 web 小配件 ( 其是在页面上孤立的组件 ) 相比, 本发明的各实施例允许代 码或脚本内容在页面本机执行, 并取决于策略来允许访问周围 API 或上下文。这一方法还 用作用于网站可扩展性的主机驱动模型。
         现在参考图 13, 一示例性流程图示出根据本发明的一实施例的保护网页内的脚本 内容的操作。例如, 在 602, 定义用于内容持有者中的一组件的策略。该组件提供用户与内 容持有者中的其他内容之间的交互。 所定义的策略指示该组件的执行边界。 在 604, 传送具 有策略引擎和 / 或该组件的内容持有者以供在主机设备上的应用程序中呈现。 在 606, 响应 于该应用程序所进行的呈现, 截取来自该组件的对服务器的资源的请求。这些资源向该组 件提供服务以与以下至少一个交互 : 用户和来自内容持有者的其他内容。在 608, 对照所定 义的策略中的执行边界来评估所截取的请求。在 610, 响应于该评估来提供动态解决方案。 现在参考图 16, 一框图示出根据本发明的一实施例的保护客户机设备上的网页内 的脚本内容的操作。图 16 在与图 1 中类似地描述的一个实施例上进一步扩展。客户机设 备 702 包括本地存储器 704、 显示器 706、 以及应用程序 710。本地存储器 704 存储来自可 由诸如服务器 106 等远程服务器访问的远程存储器区域 712 的策略 708。策略中的每一个 都定义函数或应用程序的执行边界。在一个示例中, 执行边界定义函数或应用程序的资源 访问限制或者访问属性。在该实施例中, 应用程序 710( 例如, WBA 118) 呈现从远程计算设 备传送到客户机设备 702 的内容。在一个示例中, 该内容可以聚集在内容持有者 ( 例如, 网 页 ) 中, 并且该内容可以是包括用标记语言编写的内容、 具有图形和多媒体的内容等的在 线内容。在 712, 在呈现该内容后, 响应于呈现、 提供、 或加载该在线内容, 应用程序 710 标 识内容持有者的 web 脚本内容。如上所述, 所标识的 web 脚本内容被配置成发起执行启用 以与在线内容的其他部分进行交互。例如, 执行启用可包括函数调用、 函数请求、 API 启用、 API 调用等。执行启用还可以请求其他资源而不背离本发明各实施例的范围。在 714, 应用 程序 710 截取从所标识的 web 脚本内容发起的执行启用。
         在 716, 应用程序 710 可以进一步标识所截取的执行启用中包括的参数。所标识 的参数可以从应用程序或客户机设备请求资源以与在线内容的其他部分进行交互, 以及其 他操作。在另一实施例中, 所标识的参数可以从应用程序或客户机设备请求资源以与诸如 用户 114 等用户进行交互。在 718, 应用程序 710 对照本地存储器 704 中存储的每一策略 的执行边界来评估所标识的参数。例如, 应用程序 710 对照执行边界来分析所标识的参数 并确定是否可以在应用程序 710 或客户机设备 702 的执行环境内执行该 web 脚本内容。在 720, 响应于所评估的参数, 应用程序 710 向该应用程序提供动态解决方案。如上所述, 该解 决方案可涉及修改、 替换、 移除、 或扩充所发起的执行启用。在 722, 显示器 706 向用户显示 所提供的解决方案 722。
         出于说明的目的, 程序和如操作系统等其他可执行程序组件在此被示为各离散的
         框。然而, 可以认识到, 这样的程序和组件在不同时间驻留在计算机的不同存储组件中, 并 由计算机的数据处理器执行。
         尽管结合包括客户机设备 702 的示例性计算系统环境进行了描述, 但本发明的实 施例可用于众多其他通用或专用计算系统环境或配置。 计算系统环境不旨在对本发明的任 何方面的使用范围或功能提出任何限制。而且, 计算系统环境不应被解释为对在示例性操 作环境中所示组件的任何一个或组合有任何依赖性或要求。 适用于本发明各方面的公知的 计算系统、 环境和 / 或配置的示例包括, 但不限于 : 个人计算机、 服务器计算机、 手持式或膝 上型设备、 多处理器系统、 基于微处理器的系统、 机顶盒、 可编程消费电子产品、 移动电话、 网络 PC、 小型机、 大型机、 包括上述系统或设备中的任一个的分布式计算机环境等。
         本发明的各实施例可以在由一个或多个计算机或其他设备执行的诸如程序模块 等计算机可执行指令的通用上下文中描述。 一般而言, 程序模块包括但不限于, 执行特定的 任务或实现特定的抽象数据类型的例程、 程序、 对象、 组件和数据结构。本发明的各方面也 可以在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实现。 在分 布式计算环境中, 程序模块可以位于包括存储器存储设备在内的本地和远程计算机存储介 质中。
         软件体系结构的上下文中的接口包括软件模块、 组件、 代码部分、 或其他计算机可 执行指令的序列。该接口包括例如第一模块, 该模块访问代表第一模块执行计算任务的第 二模块。在一个示例中, 该第一和第二模块包括诸如由操作系统提供的应用程序编程接口 (API)、 组件对象模型 (COM) 接口 ( 例如, 用于对等应用程序通信 ) 和可扩展标记语言元数 据交换格式 (XMI) 接口 ( 例如, 用于 web 服务之间的通信 )。
         接口可以是紧耦合的同步实现, 诸如在 Java 2 平台企业版 (J2EE)、 COM、 或分布式 COM(DCOM) 的示例中。另选地或另外地, 接口可以是松耦合的异步实现, 诸如在 web 服务中 ( 例如, 使用简单对象访问协议 )。一般而言, 接口包括以下特性的任何组合 : 紧耦合、 松耦 合、 同步、 和异步。此外, 接口可遵循标准协议、 专有协议、 或标准和专有协议的任何组合。
         此处所描述的接口都可以是单个接口的一部分, 或可被实现为独立的接口或其中 的任何组合。接口可以本地或远程地执行以提供功能。此外, 接口可包括比此处所示出或 描述的更多或更少的功能。
         本发明的各实施例可以用计算机可执行指令来实现。 计算机可执行指令可以被组 织为一个或多个计算机可执行组件或模块。 本发明的各方面可以用任何数量的这些组件或 模块及其任何组织来实现。例如, 本发明的各方面不限于在各附图中示出和本文中描述的 特定的计算机可执行指令或者特定的组件或模块。 本发明的其他实施例可以包括具有比在 本文中示出和描述的更多或更少的功能的不同计算机可执行指令或组件。
         除非另有指定, 否则此处所示和所述的本发明各实施例的操作的执行或进行的次 序并不重要。即, 除非另有指明, 否则各操作可按照任何次序执行, 且本发明的实施例可以 包括比本文所公开的更多或更少的操作。 例如, 构想了在另一操作之前、 同时或之后执行或 进行一特定操作是在本发明各方面的范围之内的。
         当介绍本发明或其实施例的各方面的各元素时, 冠词 “一” 、 “一个” 、 “该” 和 “所述” 指的是存在该元素的一个或多个。术语 “包括” 、 “包含” 、 “具有” 旨在是包括性的并且指的 是可以有除所列元素之外的其他元素。在详细描述了本发明的各方面之后, 可以清楚, 修改和变化是有可能的, 而不背离 所附权利要求书中定义的本发明各方面的范围。不背离本发明各方面的范围的情况下, 可 对以上构造、 产品和方法进行各种改变, 以上描述中所包含的以及在附图中所示出的所有 一切旨在应被解释为说明性并且没有限制意义。
         附录 A
         示例实现
         以下示例示出从源代码到安全代码的转换以及该安全代码的执行, 其在图 14 中 示出 ( 最内部的矩形 “CODE SAMPLE( 代码示例 )” 1402)。在图 14 中, 考虑以下源 “代码” 。
        
        
        
         Sample
        
        
        

    Code Sample


        

    Current Time:
        
    Click inside to see the body HTML


        

    关 键  词:
    安全 扩展 策略 驱动 应用程序 平台
      专利查询网所有文档均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    0条评论

    还可以输入200字符

    暂无评论,赶快抢占沙发吧。

    关于本文
    本文标题:安全和可扩展策略驱动的应用程序平台.pdf
    链接地址:https://www.zhuanlichaxun.net/p-4576841.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
    经营许可证编号:粤ICP备2021068784号-1