CN106462590B - 用于管理扩展对网页的修改的系统 - Google Patents

用于管理扩展对网页的修改的系统 Download PDF

Info

Publication number
CN106462590B
CN106462590B CN201580016382.XA CN201580016382A CN106462590B CN 106462590 B CN106462590 B CN 106462590B CN 201580016382 A CN201580016382 A CN 201580016382A CN 106462590 B CN106462590 B CN 106462590B
Authority
CN
China
Prior art keywords
content
extension
web
browser
web browser
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.)
Active
Application number
CN201580016382.XA
Other languages
English (en)
Other versions
CN106462590A (zh
Inventor
克雷格·沃纳
卢克·斯通
伊莉莎·韦斯利·费嫩博克
罗尼特·卡西斯
蒂莫西·翁·奥康纳
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.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of CN106462590A publication Critical patent/CN106462590A/zh
Application granted granted Critical
Publication of CN106462590B publication Critical patent/CN106462590B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • 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/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • 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/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • 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/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Abstract

一种方法和系统,其使用与Web发布者相关联的计算设备的微处理器来提供包括网页的内容。该方法包括由Web发布者访问包括与在第二计算设备处渲染内容的Web浏览器相关联的至少一个扩展的列表、以及基于该内容所生成的关键字,该关键字在所述提供后的指定时间被生成字。该方法包括将与关键字相关联的值和预期值进行比较以确定关键字与预期值之间的差。

Description

用于管理扩展对网页的修改的系统
相交申请的交叉引用
本申请要求2014年3月26日提交的、名为“SYSTEM FOR MANAGING EXTENSIONMODIFICATIONS TO WEB PAGES(用于管理对网页的扩展修改的系统)”的美国非临时专利申请号14/226,013的优先权并且为其继续申请,其公开内容通过引用全部并入本文。
技术领域
本申请一般地涉及Web技术,更具体地涉及Web浏览器扩展和网页。
背景技术
在支持Web的计算设备上实现的Web浏览器允许用户访问所有类型的内容。Web浏览器被配置为读取程序性代码并且将该代码渲染为网页,其可以包括渲染包含在各种媒体文件(例如图像、视频、和音频文件)中的音频和视觉内容,以及执行在程序性代码中定义的其他功能。网页通常使用编程语言来被实现,所述编程语言除了多种其他可用的编程语言外还诸如HTML(包括HTML5)、CSS、和JavaScript。
一些浏览器允许用户向浏览器安装附加件或扩展,其中这样的扩展向浏览器添加功能并且作为浏览器的整合部分操作。浏览器扩展可以使用程序性代码实现,该程序性代码使用与用于实现网页的相同编程语言——诸如JavaScript编写。从浏览器角度看,一旦安装了扩展,其就有效地充当作为浏览器的整合部分的网页。通过安装他或她感兴趣的扩展,用户能够有效地创建包括他们选择安装的扩展的功能的定制浏览器体验。
在当前的互联网系统中,确保所意图的内容递送(Content Delivery)的可靠性、安全性、和完整性具有挑战性。发布者网站已经尝试在不同程度上成功地建立了一定程度的可计量性、可预见性、和可信内容发布。然而,第三方浏览器扩展有能力以用户不清楚并且对涉及的各方有潜在破坏性的方式潜入该可信关系。今天,许多浏览器允许创建和安装能够改变浏览器、计算机系统、或内容或者与其交互的扩展,在一些情况下,修改内容是某些方不允许或不期望的方式,诸如广告拦截器、广告注入器、或各种恶意软件。
这些第三方扩展改变Web发布者和用户之间的直接关系,其如果被提供有恰当的控制,能够对于双方有积极作用。然而,如果控制不到位,则许多发布者和内容提供者会由于关闭的应用或付费墙(paywall)而回避开放的互联网,使用户更加难以找到和享受有用内容。Web发布者难以知道他们的内容的发布是否与Web发布者使用条件条款相符。此外,当第三方扩展能够修改内容时,Web发布者难以控制提供给用户的该内容、效能、或功能。
发明内容
根据一个大体方面,一种方法包括使用与Web发布者相关联的计算设备的微处理器来提供包括网页的内容。该方法包括由Web发布者访问包括与在第二计算设备处渲染内容的Web浏览器相关联的至少一个扩展的列表、和基于该内容所生成的关键字,该关键字在所述提供后的特定时间被生成。该方法包括将与关键字相关联的值与预期值进行比较以确定该关键字与该预期值之间的差。
实施方式可以单独或相互组合地包括以下特征中的一个或多个。该方法可以包括基于所述比较来由至少一个扩展的所述列表确定修改了所述内容的特定扩展。该确定可以由与所述Web发布者相关联的所述计算设备的所述微处理器使用来自多个不同浏览器的多个关键字与预期值的迭代比较来执行。该列表可以包括安装在所述Web浏览器中的所有扩展。该方法可以包括在由所述Web发布者标识的特定时间锁定在所述Web浏览器上正在渲染的内容。所述锁定可以由Web浏览器来执行。该方法可以包括使用所述Web浏览器生成所述关键字。该方法可以包括使用所述内容的校验和来创建关键字。该方法可以包括使用踪迹(trace)来创建关键字。该方法可以包括基于所述网页的文档对象模型的文本文件版本来创建所述关键字。该方法可以包括使用所述关键字来重新创建内容。特定扩展可以在内容被使用Web浏览器来渲染时修改该内容。
其他实施方式包括在计算机存储设备上编码的、被配置为执行方法的动作的对应的系统、装置、和计算机程序。
本文所述的主题的一个或多个实施方式可以提供一个或多个下述优点。Web发布者能够确定和控制向用户提供的内容、效能、或功能。在附图和以下描述中阐述一个或多个实施方式的细节。其他特征将从说明书和附图以及权利要求书而显而易见。
附图说明
图1是图示实现浏览器扩展的示例系统的框图。
图2是Web浏览器中的浏览器扩展的示例的框图。
图3是浏览器扩展的示例分类和操作的框图。
图4是Web浏览器的示例用户界面的图。
图5是图示根据示例实施方式的、用于检测已经作出对内容的修改的浏览器扩展的过程的流程图。
图6是图示根据示例性实施方式的、用于检测已经对内容作出修改的浏览器扩展的另一过程的流程图。
图7是图示根据示例性实施方式的、能够被用来实现此处所述的技术的计算设备和移动计算设备的图。
各附图中相似的附图标记指示相似的元件。
具体实施方式
在各个示例中,Web浏览器可以包括或被配置为与一个或多个浏览器扩展交互。在该场境中,“浏览器扩展”可以包括一个或多个网页,其一起被封装或分组成可定义整体并且被配置来扩展Web浏览器的功能。如本文所述,“浏览器扩展”是能够修改和增强Web浏览器的功能的小软件程序。它们可以使用Web技术——诸如HTML、JavaScript、和CSS来编写。扩展可以具有很少的用户界面或不具有用户界面。在一些实施方式中,扩展可以提供可以修改浏览器的“chrome”的小用户界面图标或其他用户界面,其在此处被定义为包括在浏览器中显示的网页外的区域(诸如Web浏览器窗口的边界,其包括窗口框架、菜单、工具栏、和滚动条)。选择图标或其他用户界面可以激活浏览器内的扩展的功能。
扩展可以修改网页,例如拦截广告。在一些情况下,恶意扩展可能违背Web发布者的意图而将内容、非法活动、或广告注入网页,由此损害Web发布者的品牌。此处被称作Web发布者的意指与网页相关联的内容提供者,作为示例诸如在线报纸或在线商店。
因此,在一些情况下,访问网站的用户可能具有看起来来自可信Web发布者的系统的内容(文章、文本、图像、视频、链接、广告等),但实际上该内容已经在用户或Web发布者不知晓的情况下被第三方内容替换。在一些情况下,广告主在为未真正被看到的广告而被收费时,还能够损失收入。例如,扩展可以去除或替换广告,或可以修改网页上的元素的顺序。注入广告的扩展会打乱页面上的元素而以Web发布者的内容为代价来确保它们的广告出现在首要位置。
本文所述的系统和方法为Web发布者提供使得能够对由Web发布者提供的网页的扩展行为进行管理的方法。
图1是实现浏览器扩展的示例系统的框图。在图1的示例中,本地计算设备102被图示为与远程Web发布者104通信以便使用显示器106来提供浏览器窗口108,其包含在远程Web发布者104处存储的页面110。例如,Web发布者104可以是诸如服务器的计算设备。
本地计算设备102实际上可以表示可能被配置来执行浏览器应用112并且与Web发布者104通信的任何计算设备。例如,本地计算设备102可以包括:标准台式或个人计算设备,膝上型、笔记本、或上网本计算机,平板计算机,或智能电话,电视,或者其他移动计算设备。这样的计算设备以及其他计算设备可以被配置为以各种方式通过一个或多个计算机网络——诸如公用互联网、专用内联网、或其他网络——来访问Web发布者104。因此,显示器106可以被理解为实际上表示任何类型的显示器,例如监视器、触摸屏、或者其他任何类型的视觉或听觉显示器。
在下面的示例中,一般假设本地计算设备102和浏览器应用112通常使用用于识别、访问、和渲染例如来自由Web发布者104表示的Web服务器的页面110的协议,来通过互联网与Web发布者104通信。然而,将认识到仅为了清楚和简明起见提供了这样的示例,并且如上文提及的,这样的示例不旨在限制本地计算设备102可以获得、处理、或提供与浏览器应用112和浏览器窗口108相关联的内容的各种方式。
因此,在刚刚提及的示例的类型中,一般可以假设页面110表示可通过公用互联网获得的许多类型的网页中的任何一个。例如,在简单的场景下,页面110可以表示基本上静态的网页,其包括文本、声音、图像、广告、或者本地计算设备102的用户所期望并且可以在浏览器窗口108内显示的其他内容。在其他示例中,页面110可以包括许多类型的动态或交互式内容,所述内容通常可以在浏览器窗口108的场境内由用户操纵。在许多场景下,页面110和/或相关联的可执行代码可以被理解为表示可以在Web发布者104处部分或全部执行的应用(例如,可以利用Web发布者104的处理器、存储器、和其他硬件/软件资源),同时经由浏览器窗口108来向用户提供相关联的功能和特征(以及可能在本地计算设备102处本地至少部分地本地执行)。如刚刚所提及的,这样的网页和相关联的功能和应用可使用各种常规编程语言和技术来实现,所述常规编程语言和技术诸如:例如超文本标记语言(HTML)、异步JavaScriptTM(AJAX)、可扩展标记语言(XML)、JavaScriptTM、JavaScript对象表示法(JSON)、以及可以被执行的许多其他类型的代码。
在图1的示例中,Web发布者104处的内容96包括页面110,其被图示为包括页面模型114或与其相关联。一般而言,页面模型114提供针对编写页面110的编程语言来定义页面110的结构、内容、和外观的数据结构。
在此处所述的特定示例中,页面模型114可以表示文档对象模型(DOM)数据结构。如刚刚所提及的,这样的DOM表示本身表示页面110的源代码(例如HTML)的数据结构(通常,树状数据结构)。
Web发布者104还可以包括可以将内容96提供给诸如本地计算设备102的其他计算机的内容管理器98。在一些实施方式中,内容管理器98还可以被用来定义Web发布者104能够与浏览器或应用环境交换的规则111。使用内容管理器98和规则111,Web发布者104可以对扩展或其他应用的许可或权限进行实时地应用、控制、监视、审核、提供、或保留。作为一个示例,在线报纸可以在向用户提供基于可能有权控制该内容的应用来提供的内容96之前,对其进行保留或修改。在一些实施方式中,如下文更详细所讨论的,Web发布者可以访问某些基于扩展的修改或者与网页的交互的审核记录,其能够被用于核算或其他目的。例如,审核记录可以作为数据集94来被存储在数据库中。如下文关于图6所更详细讨论的,数据集94还可以存储其他值,诸如指示对内容96的修改的值。在各个实施方式中,数据集94可以离Web发布者104远程地来被存储并且Web发布者可以例如使用如图1所示的处理器92来按需访问数据集94。处理器92可以是如关于图7更详细所述的微处理器。规则111也可以被存储在数据库或其他数据存储中。在一些情况下,存储规则111可以离Web发布者104远程地来被存储,并且Web发布者可以例如使用处理器92来按需访问规则111。
例如,规则111可以包括使得能够对扩展行为进行管理的规则。示例规则可以允许浏览器扩展重新格式化网页、保留不同种类的信息而不渲染,或以不同于由网页起初提供的顺序来向用户显示信息。另一示例规则可以控制允许哪些第三方合作人在网页上操作。另一示例规则可以允许扩展作出对网页的元素的变更或替代的选择。可以以每域、每网站、每页面、每文章、或者以其他方式来限定所述变更或替代。作为另一示例,规则可以给予多个Web发布者一种方式来限定哪些内容能够与其他发布者共同分发(co-deliver)。例如,在线报纸和在线杂志能够协作来使得来自在线报纸的新闻版块能够与在线杂志的好莱坞版块一起分发。
如此处所述,浏览器扩展可以在系统100中被利用来提供附加特征或功能性,所述特征或功能性与浏览器应用112相关联,并且由此与浏览器窗口108相关。扩展的功能可以包括但不限于观察和修改网络流量以及修改页面110的页面模型114。其他功能可以包括与用户交互,以及向浏览器添加按钮和其他用户界面元素并且处理它们与用户的交互。
如可以从以上描述所理解的,由扩展文件122定义的扩展通常指代浏览器扩展、附加件、插件、Web应用(Web app)、或者被设计成扩大浏览器应用112在提供浏览器窗口108或页面110中的外观或功能的任何其他程序代码。扩展文件122可以专门执行对与网页110相关的网络请求的修改,所述请求诸如取消对于个体资源的请求、重定向对于网页110或所引用资源的请求、修改与网页110相关的Web请求的请求和响应报头,或贡献证明(authentication)信息以检索网页110。例如,在一些情况下,扩展可以利用其他广告内容替换页面110中的广告内容121,或可以拦截广告内容121的出现或显示。广告内容121是已经向Web发布者付费以显示的内容。例如,如果广告内容121被通过劫持扩展被替换为其他内容,则广告主将不再希望通过Web发布者做广告,或者Web发布者的收入可能基于降低的广告查看量而减少。
在图1的系统100的简化示例中,扩展文件122被图示为被本地地存储在本地计算设备102上。例如,本地计算设备102的用户可以编程和存储扩展文件122以供浏览器应用112使用。然而,在附加或替选示例中,可以认识到可以远程地访问扩展文件122中的一些或全部。例如,在许多情况下,特定扩展可能被封装在单个文件夹或存档中,其之后可以由浏览器应用122访问。如图所示,例如,扩展文件122的提供者和/或分发者(在图1的示例中未具体示出)可以构建和封装扩展文件122,并且系统100的用户由此下载和安装期望的扩展,包括在本地计算设备102处访问、下载、和安装扩展文件122。
浏览器应用112可以包括渲染引擎126,其被用来将页面110的页面模型114转换为能够在浏览器窗口108中显示给用户的信息。渲染引擎126可以包括验证引擎140,其被用来解析由框架144定义的元标签。根据发布者定义的元标签,验证引擎140可以授予适当扩展某些权利来修改页面110或与其相接口。验证引擎140可以实时地执行这些动作。根据发布者定义的元标签,验证引擎140可以撤回某些扩展修改页面110或与其相接口的特权。在一些实施方式中,验证引擎140可以向扩展所有者呈现与Web发布者104相关联的合同条款,以及在扩展所有者接受提议的合同条款后,验证引擎140根据生效的合同的条款来授予该扩展修改页面110或与其相接口的特权。在一些实施方式中,作为示例,验证引擎140可以将交易以编程方式记录在服务器——诸如服务器170处,向扩展所有者开账单,并且以适当间隔补偿发布者。
浏览器应用112可以包括可以负责安装、加载、和执行扩展的扩展管理器128。其可以负责处理扩展122与渲染引擎126之间的通信。正因如此,其可以将事件调度到某些扩展122、收集它们对web请求的期望的修改、将它们发送到验证引擎140、以及将结果发送回网络堆栈。可以由浏览器应用112的其他组件执行该功能的部分或全部。
扩展管理器128还可以包括通知器142,其可以向Web发布者104披露某些浏览器元素,诸如DOM元素。如下文关于图3所更详细讨论的,例如,DOM元素可以包括:安装在本地计算设备102或浏览器应用112上的某些或每个浏览器扩展的名称、每个扩展的分类列举(classification enumeration)、或者每个浏览器扩展可以在给定网页上执行的操作或动作(例如创建、读取、更新、删除)的列表。
在一些情况下,扩展管理器128还可以包括允许发布者在浏览器扩展DOM元素的列表上以编程方式迭代的框架144(其可以以例如JavaScriptTM编程)。框架144促进发布者定义的网页元标签的插入,所述网页元标签可以规定特定扩展可以如何与页面110互操作。框架144可以指定可以与页面110互操作的扩展的分类。框架144可以指定通常如何将操作或动作应用于页面110,诸如更新、读取、删除、写入等。在一些实施方式中,框架144可以促进合同条款的定义,通过该合同条款Web发布者104可以向扩展所有者要求为在页面110上执行各个操作或动作付费。
当然,可以认识到浏览器应用112可以包括在图1的场境下未具体图示的各种特征、功能、操作模块或其他元件或者与以上相关联。类似地,可以认识到与渲染引擎126和扩展管理器128关联使用的术语仅为了示例起见,并且可以认识到现有的或未来可能存在的各种类型的浏览器应用112在参照此处所述的各个概念时可以使用不同的术语。
系统100还可以包括远程服务器170。服务器170可以包括中央存储组件180、认证(certification)引擎172、和审核引擎182。在一些情况下,中央存储组件180可以存储与网页上的各个扩展的行为相对应的审核踪迹(trail)或日志。认证引擎172可以被用来证实浏览器扩展仅执行它们被限定来执行的行为。例如,服务器170可以自动地认证某些浏览器扩展,并且基于由该浏览器扩展执行的动作的审核或测试结果(即,验证浏览器扩展仅执行它们声称执行的动作),来为那些所认证的浏览器扩展分类指派数字证书或用数字证书签署浏览器扩展。审核引擎182可以被用来例如结合中央存储组件180来跟踪和记录各个浏览器扩展的某些动作,或者被用来基于与扩展相关联的权限和定义来评价动作,其也可以被存储在中央存储组件180中。
在一些情况下,浏览器应用112可以实时地访问中央存储组件180来确定安装在浏览器应用中的扩展具有某些权限。浏览器应用112可以与页面110相关联的Web发布者104共享该信息。例如,如在下文关于图3所更详细讨论的,正请求内容的页面或类型的浏览器可以向Web发布者104通知浏览器应用112安装有扩展A、B、和C,并且这些扩展可以进行动作X、Y、和Z。然后,Web发布者104可以基于该信息来选择执行某些动作,诸如:保留内容、派发不同形式的内容、将浏览器应用112的用户重定向到不同类型的内容(例如PDF或图像)等。当用户接收该内容时,该用户可以看到浏览器扩展已经如何改变了来自由Web发布者104提供的原始页面的内容。
如图1的示例中所示,浏览器应用112可以包括扩展管理器128,其可以被配置来实现特定扩展——诸如与扩展文件122相关联的扩展的一些或全部功能。例如,扩展管理器128可以被配置为使得渲染引擎126执行或者以其他方式渲染与扩展文件122的扩展相关联的特定文件或页面。如在下文中关于图2所更详细讨论的,扩展管理器128还可以被配置来执行后台页面和内容脚本。例如,可以编写内容脚本来检查在浏览器应用122中加载的以用于在浏览器窗口108内渲染的任何页面,以便检测特定类型的内容(例如非链接网页、或RSS馈送)的存在。即,内容脚本可以在浏览器窗口108内加载和渲染的任何网页的内容上执行这样的技术。在内容脚本检测到特定类型的内容的事件下,内容脚本可以将消息传递到扩展以便向该扩展通知检测到存在特定类型的内容。在一些情况下,扩展可以执行浏览器窗口108的实际修改(例如,执行关于浏览器窗口108的页面动作,诸如显示扩展图标120)。
在图1的示例中,浏览器应用112被图示包括分立功能模块。然而,可以认识到这样的示例仅出于示例的目的,并且其他实施方式也是可能的。例如,可以由两个或更多元素来实现浏览器应用112的单个元件。相反,可以使用单个组件来执行图1中所图示的浏览器应用的两个或更多组件。此外,在图1的示例中,本地计算设备102被图示为至少包括一个处理器102a、以及计算机可读存储介质102b。即,例如,本地计算设备102可以依赖并行执行的两个或更多处理器以实现所期望的结果。同时,计算机可读存储介质102b可以表示例如可以被用来存储指令的任何常规类型的计算机存储器,该指令当由至少一个处理器102a执行时使得浏览器应用112执行各个功能,以及本文所述的其他相关功能。图1的系统100的附加或替选示例实施方式也是可能的。
图2是Web浏览器中的浏览器扩展的示例的框图。如上所提及的,扩展文件可以包括各种不同类型的文件。例如,如图2所示的扩展204可以包括给出关于扩展204的信息的清单文件230,诸如例如扩展可以提供的最重要文件和能力以及扩展可能具有的与网页和浏览器应用进行交互的权限。例如清单230可以包括扩展的名称和扩展204试图作用于其上的至少一个内容类型232。例如,内容类型可以是图像、文本、超级链接等。如下文关于图3更详细所述的,清单230还可以指示可以由扩展204执行的一个或多个动作234或操作,诸如读取、写入、更新、删除等。可以认识到,扩展可以如上所提及的包括各种其他类型的文件。例如,扩展204可以包括至少一个HTML页面220,诸如例如与提供与浏览器窗口208相关联的弹出窗口的浏览器动作相关联的HTML页面,或者与能够修改待在浏览器窗口208内显示的网页201的页面模型的内容的内容脚本文件212相关联的HTML页面。
就扩展204的执行而言,不同于如下所述的内容脚本212,其执行可以类似于图1中所示的浏览器应用的渲染引擎进行,但以与其分离的过程进行。内容脚本212可以表示或包括使的相关联的扩展能够与例如网页201的网页交互的脚本。例如,内容脚本212可以被实现为在网页201的场境中执行为被加载到浏览器内的JavaScriptTM
内容脚本可以找到网页中的非链接URL并且将它们转换为超级链接,增加字体大小以使文字更清晰可读,以及添加或拦截广告或其他内容。内容脚本可以间接使用浏览器API、获得扩展数据的访问权、并且通过与它们的父扩展交换消息来请求扩展动作。内容脚本还能够使用图1中所示的页面模型(例如DOM)来与网页通信。
内容脚本212代码可以总是尝试被注入到网页中,或可以取决于如何编写内容脚本仅在有些时候被注入。此外,扩展204能够将多个内容脚本插入到页面内,并且这些内容脚本中的每一个都可以具有多个文件,诸如JavaScriptTM和CSS文件。
一般而言,内容脚本可以被配置来读取由浏览器应用访问的网页的详情,并且可以进一步被配置为作出这样的网页的改变。例如,内容脚本可以被配置为读取和/或修改页面201的页面模型(例如DOM)。然而,在示例实施方式中,如上文关于图1所讨论的,可以基于由与网页201相关联的Web发布者提供的规则,通过浏览器应用的渲染引擎来限制内容脚本访问或修改网页201的页面模型(例如DOM)。以这种方式,Web发布者可以管理或跟踪某些网页上的扩展行为。
图3是浏览器扩展的示例分类和操作的框图。图3所示的系统300包括两个计算设备,设备310和设备320。所述设备中的每个设备可以包括浏览器应用,诸如上面关于图1所述的浏览器应用。该浏览器应用可以包括浏览器DOM元素,其在经用户同意的情况下,将各个浏览器扩展元素披露给Web发布者,诸如图1所示的Web发布者。例如,浏览器扩展元素可以包括被安装在该设备上的每个浏览器扩展的名称、每个扩展的分类列举、以及每个浏览器扩展可以在给定网页上执行的操作的列表(例如创建、读取、更新、删除)。
例如,如图3所示,可以由设备310的浏览器应用将各个浏览器元素312披露给Web发布者。浏览器元素312包括在设备310上操作的浏览器应用上安装的三个浏览器扩展的名称、分类、和操作。第一浏览器扩展具有名称“Adserver(广告服务器)”、分类“A”、和操作“读,写”。第二浏览器扩展具有名称“Converter(转换器)”、分类“B”、和操作“读”。第三浏览器扩展具有名称“Emailer(电子邮件器)”、分类“C”、和操作“更新,删除”。
作为另一示例,浏览器元素322与设备320处的浏览器应用相关联。浏览器元素322包括在设备320上操作的浏览器应用上安装的两个浏览器扩展的名称、分类、和操作。第一浏览器扩展具有名称“Adserver”,分类“A”、和操作“读,写”。第二浏览器扩展具有名称“SocialStatus(社交状态)”、分类“B”、和操作“读,写,更新”。
客户端侧框架(例如以JavaScript形式)——诸如图1的框架144可以允许Web发布者在浏览器扩展DOM元素的列表上以编程方式迭代。该框架促进发布者定义的网页元标签的插入,所述网页元标签规定特定扩展可以如何与由Web发布者派发的网页互操作。多个分类的扩展可以与页面互操作。操作通常可以被应用于网页。框架可以促进定义合同条款,例如通过该合同条款,Web发布者可以向扩展所有者要求为在页面上执行各个操作的权利付费。
图4是Web浏览器的示例用户界面的图。该用户界面可以在诸如上面关于图1所讨论的浏览器应用的Web浏览器的标签402或窗口中实现。标签402可以显示网页404,其包括内容410以及广告420和广告422。在一些情况下,在浏览器应用中操作的扩展可能试图修改或拦截广告中的一个——诸如广告420。在一些情况下,扩展可能试图用不由Web发布者提供的其他内容替换内容410。在一些情况下,扩展可能试图用另一广告或其他内容替换广告422。
为了使Web发布者保持可信品牌的完整性和权威,他们需要更好地控制他们提供的内容。对扩展的控制是双重的。在当前商业模型中,诸如报纸的Web发布者被组织来派发广告以便继续向终端用户分发免费或低成本的内容。此外,报纸对其广告合伙人具有通过紧靠着恰当的新闻报道适当地派发广告来确保保持品牌完整性的法律义务。例如,巧克力供应者不希望其广告被置于与升高糖尿病和肥胖率相关的新闻报道旁边。当今的广告拦截器扩展充其量只能去除发布者用来确保向其用户连续高质量低成本分发的收入来源。当今的用户同意来自服务提供者的隐含的服务条款以接收与广告相结合的内容,或者有机会通过购进向他们提供有限广告或无广告内容的模型以选择退出(opt-out)。但上述扩展仅拦截广告的派发。在另一场景下,广告扩展用自己的广告替换报纸广告,当巧克力广告被派发在紧靠错误文章时造成了报纸的责任。
扩展还能够向发布者提供其无法以其他方式自给自足的服务。例如,考虑如下假定的示例:叫作Mamie’s Lodge(妈妈的小屋)的本地含早旅馆(B&B)终于已经建立了web展示(web-presence)。作为可信品牌,他们已经开始在他们的预订站点上派发本地广告。Mamie’s Lodge想要使得可信扩展能够在他们的网站上提供货币兑换,但Mamie’s Lodge目前不具有能力来控制其用户是否得到准确的汇率。
扩展还会影响用户。例如,想象用户“Susie”每天阅读在线报纸的时尚、天气、和婚礼版面。她还喜欢阅读头条新闻,但这通常处于她的列表的底部。她想要将她最喜欢的文章放在首位的个性化在线报纸主页。她能够主动地选择她最喜欢的文章,但会更希望不在这方面花时间。如果她能够安装会跟踪她阅读报纸的版面时间和频率并且相应地更新个性化主页的文章布局的扩展,则她会更多地阅读在线报纸。在线报纸想要支持该努力,但还不具有该能力。如果报纸能够控制该服务的提供者是谁,则它们能够确保品牌完整性并且提供更好的用户体验。
作为另一示例,扩展能够向移动设备的用户提供服务。例如,考虑刚购买了最新的智能手表的用户“Tom”。他正尝试尽可能地远离他的设备,但有几个标题他总是在留意。他想要使某些在线报纸将特定主题推送到他的手表,这是他的快节奏的工作日所必需的。这些发布者如果其能够保证正确分发则可以共同混合他们的内容。
图5是根据示例实施方式的用于检测已经作出对内容的修改的浏览器扩展的过程的流程图。图5所示的过程至少部分可以由计算机系统执行,所述计算机系统诸如图1所示的系统100,例如图1所示的Web发布者104。Web发布者可以提供包括网页的内容(510)。例如,该内容可以包括网页110。图1所示的浏览器应用112可以使用渲染引擎126来渲染页面110。浏览器还可以在由Web发布者104指定的时间锁定内容,例如通过锁定页面110的DOM来锁定。例如,在由Web发布者指定的时间后,例如通过使用W3C IFrame Sandbox Attribute的沙箱属性,浏览器可以防止脚本、插件、弹出式窗口、或浏览器扩展在页面110的DOM上操作。
例如,Web发布者104使用图1所示的处理器92,可以访问与访问内容(例如浏览器应用112)的第一Web浏览器相关联的至少一个扩展的列表,并且还可以接收由Web浏览器基于该内容来生成的关键字(520)。第一Web浏览器可以在内容上执行功能以生成关键字。作为功能的示例,第一Web浏览器可以对网页上所渲染的内容进行截图。作为另一示例,浏览器可以执行内容的校验和以生成在对内容的传输中该内容所包括的位的数目的计数。作为另一示例,第一Web浏览器可以执行对内容的踪迹。例如,Web浏览器可以执行踪迹以创建日志来记录关于浏览器过程、所渲染的过程、和由浏览器渲染的内容的信息的,或者来记录关于由服务器和Web浏览器交换的数据的信息。该数据交换可以包括调试控制、服务器变量、cookies、所渲染的内容、以及其他信息。在一些实施方式中,执行踪迹的结果是包括用于在诸如浏览器过程的过程中发生的事件的事件时间的记录(诸如踪迹文件)。作为示例,踪迹能够包括发布者内容与来自不同发布者的第二内容集合并的记录。记录能够包括导致最终用户视图的格式的任何修改。记录能够被用来在未来作出修改以变更内容的顺序或向内容作者付费。
作为功能的其他示例,第一Web浏览器可以将DOM保存为文本文件,或者可以保存页面110上的不同标签的数目和位置,或者页面110上的元素的类型。该功能是可逆的,使得诸如Web发布者104的系统可以从关键字并且从不仅仅来自内容的关键字生成内容。例如,如果关键字包括作为文本文件的DOM,则Web发布者可以使用该文本文件来重新创建内容。作为示例,Web发布者能够基于在新的关键字中所修改的字体大小来改变内容的长度,对于较大字体大小返回更简洁的内容,以及对于较小字体大小返回更完整的内容。
例如,Web发布者104可以使用处理器92来将与关键字相关联的值与预期的值比较(530)。例如,如果第一Web浏览器在内容上执行校验和函数以生成多个位并且将位的数目与关键字相关联,Web发布者能够将与关键字相关联的位的数目与Web发布者例如基于由Web发布者提供的初始内容来预期将与内容相关联的预期位数目比较。所预期的值可以是表示对内容无修改的值。Web发布者104可以确定该值与预期的值不相同(540,否)。该确定可以指示由第一Web浏览器渲染的内容在某些方面不同于由Web发布者104初始提供的内容,其进而可以指示浏览器扩展在内容由第一Web浏览器渲染时对其进行了修改。例如,浏览器扩展可能已经添加或去除了与内容相关联的广告、改变了文本的位置、删除了文本、高亮了网页的可视元素、添加了超级链接、或修改了内容的其他方面。Web发布者104可以确定该值与预期的值之间的差。例如在下文关于图6所更详细描述的,然后,Web发布者104可以例如使用处理器92基于该差来从列表确定修改了该内容的特定浏览器扩展(550),。在一些实施方式中,例如,如果列表仅包含一个浏览器扩展,则Web发布者可以避免该确定,因为Web发布者能够自动地确定来自该列表的该单个浏览器扩展修改了网页或内容。在一些实施方式中,Web发布者可以迭代地或实时地分析多个列表、多个关键字、和多个预期的值,以推断哪些浏览器扩展修改了内容。多个列表、关键字、和预期值可以来自各个的Web浏览器和计算设备。例如,Web发布者可以分析扩展的100个列表和100个关键字的集合来确定哪些浏览器扩展改变了内容。在一个示例中,Web发布者可以将相同内容发送到均可以安装有不同扩展集的100个不同的浏览器。然后,Web发布者接收关于哪些扩展修改了内容的信息。然后,Web发布者可以查找修改了内容的浏览器中的全部浏览器所共同的、扩展以确定哪些扩展可能已经修改了内容。例如,Web发布者可以确定浏览器中的40个浏览器修改了内容。在那40个浏览器中,都具有相同扩展“A”并且没有其他的共同扩展。在那种情况下,Web发布者能够确定扩展“A”很可能导致了对内容的修改。替选地或另外地,Web发布者可以确定所有40个浏览器已经安装有扩展“A”、“B”、和“C”,并且确定其他60个浏览器中的一些浏览器也已经安装有扩展“B”和“C”,但其他60个浏览器未修改内容。在那种情况下,Web发布者也能够检测到扩展“A”很可能导致了对内容的修改。Web发布者可以在几分钟、几小时、几天、或甚至几周内使用迭代比较,并且这样的比较可以是连续和不间断的,以向Web发布者提供与由扩展对Web发布者所提供的内容作出的修改相关的更新的数据。
图5所示的过程可以在各个位置处的多个计算设备中操作的多个Web浏览器上从用户的角度同时、实时、没有任何延迟地操作。在各个实施方式中,例如,如以下关于图6所更详细讨论的,Web发布者104可以接收在渲染内容的Web浏览器中安装或操作的所有浏览器扩展的列表。在各个实施方式中,图5中所示的过程中的一些或所有可以由第三方计算机实现。例如,可以由第三方计算设备执行步骤520-550中的分析中一些或全部。在这样的示例中,第三方计算设备可以为Web发布者104提供或使得其能够访问分析的结果。例如,在一个实施方式中,Web浏览器可以向第三方服务器(诸如图1所示的服务器170)发送在Web浏览器中所安装的所有扩展的列表,以及由Web浏览器基于内容来生成的关键字。如果浏览器扩展没有修改网页上的内容,则第三方服务器可以预期接收关键字的一定值。如果列表中的浏览器扩展中的任何一个修改了网页上的内容,则关键字的值可以不同于第三方服务器预期接收的值。第三方服务器可以合并不同值并且为Web发布者创建报告。例如,该报告可以包括已经修改了内容的扩展的列表,以及每个扩展已经修改了内容的哪些方面,并且例如,第三方服务器可以将报告发送至Web发布者或使报告对于Web发布者可用以经由安全登录来从某个网站下载。
图6是图示了根据示例实施方式的、用于检测已经对内容作出修改的浏览器扩展的另一过程的流程图。图6所示的过程可以至少部分地由计算机系统实现,所述计算机系统诸如图1所示的系统100,例如图1所示的Web发布者104。Web发布者可以提供包括网页的内容(610)。例如,网页可以是在线报纸的一部分。另一计算设备处的Web浏览器可以在特定时间锁定内容(612)。例如在由Web发布者指定的时间后,例如通过使用W3C IFrame SandboxAttribute的沙箱属性,Web浏览器可以防止脚本、插件、弹出窗口、或浏览器扩展在页面110的DOM上操作。
Web发布者可以访问与访问该内容的Web浏览器相关联的所有扩展的列表,并且Web发布者还可以访问由Web浏览器基于内容来生成的关键字(620)。Web发布者可以将与关键字相关联的值与预期的值比较(630)。Web发布者可以确定该值是否与预期值的相同(640)。如果相同,则Web发布者可以继续提供内容(610)。如果不相同(640,否),则Web发布者可以确定该值与预期的值之间的差,并且还确定在数据集中是否存在足够的数据以确定修改了内容的特定浏览器扩展(650)。例如,数据集可以是如图1所示的数据集94。作为一个说明性实施方式,Web发布者可以访问与访问该内容的Web浏览器相关联的所有扩展的列表(620)。如果在与Web浏览器相关联的所有扩展的列表中仅存在一个浏览器扩展,则Web发布者可以具有足够的数据来确定哪个浏览器扩展修改了内容——该一个浏览器扩展。作为另一示例,所有浏览器扩展的列表可以包括图3中的浏览器元素312。在该示例中,如果元素(例如广告)从正在Web浏览器上渲染的内容被删除,则Web发布者可能能够基于与浏览器扩展相关联的操作来从浏览器元素312确定仅来自该列表的一个特定扩展才能够删除内容。在该示例中,该特定扩展会是在浏览器元素312中所示的“Emailer”浏览器扩展——具有删除操作作为可能的操作的来自浏览器元素312的仅有的扩展。在该情况下,Web发布者将具有足够的数据来确定哪个扩展修改了内容。如果是(650,是),则Web发布者可以确定修改了内容的特定浏览器扩展(660)。如果不是(650,否),则Web发布者可以将该值存储在数据集中以用于未来的比较(652),并且可以继续提供内容(610)。在这样的示例中,Web发布者可以使用来自各个其他计算设备的数据和Web浏览器来作出多次迭代比较以确定哪个浏览器扩展对内容作出了修改。可以在几秒、几小时、或者甚至几天内执行该迭代比较。Web发布者可以将数据集94存储在与Web服务器相关联的数据库中或存储在远程数据存储处。
图7是示出了可以与这里描述的技术一起使用的通用计算机设备700和通用移动计算机设备750的示例的图。计算设备700意图表示各种形式的数字计算机,诸如膝上型计算机、桌面计算机、工作站、个人数字助理、服务器、刀片服务器、大型主机、和其他适当的计算机。计算设备750意图表示各种形式的移动设备,诸如个人数字助理、蜂窝电话、智能电话、和其他相似的计算设备。这里所示的组件、其连接和关系、以及其功能仅意欲作为示例性。
计算设备700包括处理器702、存储器704、存储设备706、连接到存储器704和高速扩展端口710的高速接口708、以及连接到低速总线714和存储设备706的低速接口712。组件702、704、706、710、和712中的每个组件使用各种总线来互连并且可以安装在公共主板上或者视情况以其他方式来安装。处理器702能够处理用于在计算设备700内执行的指令,其包括存储于存储器704中或者存储设备706上以显示用于外部输入/输出设备——诸如耦合到高速接口708的显示器716上的GUI的图形信息。在其他实施方式中,可以视情况连同多个存储器和多种类型的存储器一起使用多个处理器和/或多个总线。此外,可以连接多个计算设备700,其中每个设备提供必要操作的一部分(例如作为服务器组、或者刀片服务器群、或者多处理器系统)。
存储器704存储计算设备700内的信息。在一个实施方式中,存储器704是一个或者多个易失性存储器单元。在另一实施方式中,存储器704是一个或者多个非易失性存储器单元。存储器704也可以是另一形式的计算机可读介质,诸如磁盘或者光盘。
存储设备706能够为计算设备700提供大容量存储。在一个实施方式中,存储设备706可以是计算机可读介质或者包含计算机可读介质,诸如软盘设备、硬盘设备、光盘设备、或者磁带设备、闪存或其他类似的固态存储器设备、或者设备阵列,包括在存储区域网络或者其他配置中的设备。计算机程序产品能够以信息载体来有形地体现。计算机程序产品也可以包含指令,所述指令在被执行时执行一个或多个方法,诸如上文描述的那些方法。信息载体是计算机或者机器可读介质,诸如存储器704、存储设备706、或在处理器702上的存储器。
高速控制器708管理计算设备700的带宽密集型操作,而低速控制器712管理较低的带宽密集型操作。这样的功能分配仅是示例性的。在一个实施方式中,高速控制器708耦合到存储器704、显示器716(例如通过图形处理器或者加速器来耦合)、并且耦合到可以接受各种扩展卡(未示出)的高速扩展端口710。在该实施方式中,低速控制器712耦合到存储设备706和低速扩展端口714。可以包括各种通信端口(例如USB、蓝牙、以太网、无线以太网)的低速扩展端口可以耦合到一个或者多个输入/输出设备——诸如键盘、指示设备、扫描仪,或者例如通过网络适配器耦合到联网设备——诸如交换机或者路由器。
如图中所示,可以以多个不同形式来实现计算设备700。例如,计算设备700可以被实现为标准服务器720、或者多次被实现在这样的服务器的群组中。其也可以被实现为架式服务器系统724的一部分。此外,计算设备700还可以被实现在诸如膝上型计算机722的个人计算机中。替选地,来自计算设备700的组件可以与诸如设备750的移动设备(未示出)中的其他组件组合。这样的设备中的每个设备可以包含计算设备700、750中的一个或者多个计算设备,并且整个系统可以由相互通信的多个计算设备700、750组成。
除其它组件之外,计算设备750包括处理器752、存储器764、输入/输出设备——诸如显示器754、通信接口766、以及收发器768。设备750也可以被提供有诸如微型驱动器或者其他设备的存储设备以提供附加的存储。使用各种总线来互连组件750、752、764、754、766、和768中的每个组件,并且组件中的若干组件可以被安装在公用母板上或者视情况以其他方式来安装。
处理器752能够执行计算设备750内的指令,包括存储于存储器764中的指令。处理器可以被实现为芯片的芯片组,所述芯片包括单独和多个模拟和数字处理器。例如,处理器可以提供设备750的其他组件的协调,诸如对用户界面、设备750运行的应用、和设备750进行的无线通信的控制。
处理器752可以通过耦合到显示器754的控制接口758和显示接口756来与用户通信。例如,显示器754可以是TFTLCD(薄膜晶体管液晶显示器)或者OLED(有机发光二极管)显示器或者其他适当的显示技术。显示接口756可以包括用于驱动显示器754以向用户呈现图形和其他信息的适当电路。控制接口758可以从用户接收命令并且对其进行转换以用于向处理器752提交。此外,可以提供与处理器752通信的外部接口762以便使得设备750能够与其他设备的近区域通信。例如,外部接口762在一些实施方式中可以提供有线通信或者在其他实施方式中提供无线通信,并且也可以使用多个接口。
存储器764存储计算设备750内的信息。存储器764可以被实现为一个或多个计算机可读介质、一个或多个易失性存储器单元、或者一个或多个非易失性存储器单元中的一个或多个。扩展存储器774也可以被提供并且通过例如可以包括SIMM(单列直插内存模块)卡接口的扩展接口772连接到设备750。扩展存储器774可以为设备750提供额外存储空间或者也可以存储用于设备750的应用或者其他信息。具体而言,扩展存储器774可以包括用于执行或补充上文描述的过程的指令并且也可以包括安全信息。因此,例如,可以提供扩展存储器774作为设备750的安全模块,并且扩展存储器774可以被编程有许可安全使用设备750的指令。此外,还可以经由SIMM卡将安全应用连同附加信息一起提供。
如下文所讨论的,例如,存储器可以包括闪存和/或NVRAM存储器。在一个实施方式中,计算机程序产品以信息载体来有形地体现。计算机程序产品包含指令,所述指令在被执行时实施诸如上文所描述的那些方法的一个或多个方法。信息载体是例如可以通过收发器768或外部接口762来接收的计算机或机器可读介质,诸如存储器764、扩展存储器774、或在处理器752上的存储器。
设备750可以通过通信接口766无线通信,该通信接口可以在必要的情况下包括数字信号处理电路。通信接口766可以在各种模式或协议下提供通信,所述模式或协议除其他外诸如GSM语音呼叫、SMS、EMS、或者MMS消息收发、CDMA、TDMA、PDC、WCDMA、CDMA2000、或者GPS。例如,这样的通信可以通过射频收发器768来发生。此外,短程通信可以诸如使用蓝牙、Wi-Fi、或者其他这样的收发器(未示出)来发生。此外,GPS(全球定位系统)接收器模块770可以向设备750提供附加的导航相关和位置相关的无线数据,该无线数据可以由在设备750上运行的应用视情况使用。
设备750也可以使用音频编解码器760来可听地通信,该音频编解码器760可以从用户接收语音信息并且将其转换成可使用的数字信息。同样,音频编解码器760可以诸如通过例如设备750的送受话器中的扬声器为用户生成可听声音。这样的声音可以包括来自语音电话呼叫的声音、可以包括已记录的声音(例如语音消息、音乐文件等)、并且也可以包括在设备750上操作的应用所生成的声音。
如图所示,可以以多种不同形式来实现计算设备750。例如,计算设备750可以被实现为蜂窝电话780。计算设备750也可以被实现为智能电话782、个人数字助理、或者其他类似移动设备的部分。
这里描述的系统和技术的各种实施方式可以以数字电子电路、集成电路、专门设计的ASIC(专用集成电路)、计算机硬件、固件、软件、和/或其组合中来实现。这些各种实施方式可以包括一个或多个计算机程序中的实施方式,所述计算机程序可以在包括至少一个可编程处理器、至少一个输入设备和至少一个输出设备的可编程系统上执行和/或解释,所述可编程处理器是专用或通用的,被耦合以从存储系统接收数据和指令并且向所述存储系统传送数据和指令。
这些计算机程序(也称为程序、软件、软件应用、或者代码)包括用于可编程处理器的机器指令并且可以用高级过程语言和/或面向对象的编程语言、和/或用汇编/机器语言来实现。如这里所使用,术语“机器可读介质”、“计算机可读介质”指代被用来向可编程处理器提供机器指令和/或数据的任何计算机程序产品、装置和/或设备(例如磁盘、光盘、存储器、可编程逻辑器件(PLD)),包括接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指代被用来向可编程处理器提供机器指令和/或数据的任何信号。
为了提供与用户的交互,这里描述的系统和技术可以在具有下述的计算机上实现:用于向用户显示信息的显示器设备(例如CRT(阴极射线管)或者LCD(液晶显示器)监视器),以及用户通过其可以向计算机提供输入的键盘和指示设备(例如鼠标或轨迹球)。还能够使用其他类型的设备来提供与用户的交互;例如,向用户提供的反馈可以是任何形式的感官反馈(例如视觉反馈、听觉反馈、或者触觉反馈);并且能够用包括声音、语音、或者触觉输入的任何形式接收来自用户的输入。
这里描述的系统和技术能够以计算系统来实现,该计算系统包括:后端组件(例如作为数据服务器),或者包括中间件组件(例如应用服务器),或者包括前端组件(例如具有图形用户界面或者网上浏览器(用户可以通过其可以与这里所描述的系统和技术的实施方式进行交互的图形用户界面或者web浏览器的客户端计算机),或者这样的后端、中间件、或者前端组件的任何组合。系统的组件可以由任何形式或介质的数字数据通信(例如通信网络)互连。通信网络的示例包括局域网(“LAN”)、广域网(“WAN”)、和互联网。
计算系统能够包括客户端和服务器。客户端和服务器一般相互远离并且通常通过通信网络交互。客户端和服务器的关系依靠计算机程序来产生,所述计算机程序在相应计算机上运行并且相互具有客户端-服务器关系。
已经对多个实施方式进行了描述。然而,将理解在不偏离本发明的精神和范围的情况下可以进行各种修改。
此外,图中描绘的逻辑流程不需要所示的特定顺序或者依次顺序来实现所期望的结果。此外,可以提供其他步骤或者可以从所描述的流程消除步骤,并且可以向所描述的系统添加其他组件或者从其去除其他组件。因此,其他实施方式在所附权利要求书的范围内。

Claims (19)

1.一种用于管理扩展对网页的修改的方法,包括:
由与Web发布者相关联的计算设备来提供包括网页的内容;
由所述Web发布者访问包括与在第二计算设备处渲染所述内容的Web浏览器相关联的至少一个扩展的列表、以及基于所述内容由所述Web浏览器所生成的关键字,所述关键字在所述提供后的特定时间被生成,所述内容是由所述Web浏览器使用所述至少一个扩展渲染的;以及
将与所述关键字相关联的值和预期值进行比较以确定所述关键字与所述预期值之间的差,其中所述预期值是表示对所述内容没有修改的值;
通过基于与所述至少一个扩展相关联的操作确定扩展能够对所述内容进行修改来从所述至少一个扩展的列表确定修改了所述内容的所述扩展;以及
响应于确定所述扩展已经修改了所述内容,向所述第二计算设备提供代码,所述代码在由所述第二计算设备执行时防止所述扩展在所述网页上的操作。
2.根据权利要求1所述的方法,其中,所述确定由与所述Web发布者相关联的所述计算设备使用来自多个不同浏览器的多个关键字与所述预期值的迭代比较来执行。
3.根据权利要求1所述的方法,其中,所述列表包括在所述Web浏览器中安装的所有扩展。
4.根据权利要求1所述的方法,进一步包括:在由所述Web发布者标识的时间,锁定在所述Web浏览器上正在渲染的内容。
5.根据权利要求4所述的方法,其中,所述锁定由所述Web浏览器来执行。
6.根据权利要求1所述的方法,进一步包括使用所述Web浏览器来生成所述关键字。
7.根据权利要求6所述的方法,进一步包括使用所述内容的校验和来创建所述关键字。
8.根据权利要求6所述的方法,进一步包括使用踪迹来创建所述关键字。
9.根据权利要求6所述的方法,进一步包括基于所述网页的文档对象模型的文本文件版本来创建所述关键字。
10.根据权利要求1所述的方法,进一步包括使用所述关键字来重新创建所述内容。
11.一种用于管理扩展对网页的修改的系统,包括:
存储指令集的存储器;以及
处理器,所述处理器被配置为执行所述指令集以使得所述系统:
提供包括网页的内容;
接收包括与在计算设备处渲染所述内容的Web浏览器相关联的至少一个扩展的列表、以及基于所述内容由所述Web浏览器所生成的关键字,所述关键字在所述提供之后的时间被生成,所述内容是由所述Web浏览器使用所述至少一个扩展渲染的;
将与所述关键字相关联的值和预期值进行比较以确定所述关键字与所述预期值之间的差,其中所述预期值是表示对所述内容没有修改的值;
通过基于与所述至少一个扩展相关联的操作确定扩展能够对所述内容进行修改来从所述至少一个扩展的列表确定修改了所述内容的所述扩展;以及
响应于确定所述扩展已经修改了所述内容,向所述计算设备提供代码,所述代码在由所述计算设备执行时防止所述扩展在所述网页上的操作。
12.根据权利要求11所述的系统,其中,所述系统使用多个关键字与多个预期值的迭代比较来确定所述扩展。
13.根据权利要求12所述的系统,其中,所述列表包括在所述Web浏览器中安装的所有扩展。
14.根据权利要求12所述的系统,其中,所述处理器被进一步配置为执行所述指令集以使得所述系统在由Web发布者标识的特定时间锁定在所述Web浏览器上正在渲染的内容。
15.根据权利要求12所述的系统,其中,由所述Web浏览器生成所述关键字。
16.一种包含指令的非暂时性计算机可读介质,所述指令在被执行时使得计算机系统的微处理器:
提供包括网页的内容;
接收包括与在计算设备处渲染所述内容的Web浏览器相关联的至少一个扩展的列表、以及基于所述内容由所述Web浏览器所生成的关键字,所述关键字在所述提供之后的时间被生成,所述内容是由所述Web浏览器使用所述至少一个扩展渲染的;
将与所述关键字相关联的值和预期值进行比较以确定所述关键字与所述预期值之间的差,其中所述预期值是表示对所述内容没有修改的值;
通过基于与所述至少一个扩展相关联的操作确定扩展能够对所述内容进行修改来从所述至少一个扩展的列表确定修改了所述内容的所述扩展;以及
响应于确定所述扩展已经修改了所述内容,向所述计算设备提供代码,所述代码在由所述计算设备执行时防止所述扩展在所述网页上的操作。
17.根据权利要求16所述的非暂时性计算机可读介质,其中,所述特定扩展在所述内容被使用所述Web浏览器渲染时修改所述内容。
18.根据权利要求16所述的非暂时性计算机可读介质,其中,所述列表包括与在所述计算设备处渲染所述内容的所述Web浏览器相关联的所有扩展。
19.根据权利要求16所述的非暂时性计算机可读介质,其中,所述指令进一步使得所述计算机系统将所指定的时间提供给所述Web浏览器以锁定所述内容。
CN201580016382.XA 2014-03-26 2015-03-25 用于管理扩展对网页的修改的系统 Active CN106462590B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/226,013 US9930095B2 (en) 2014-03-26 2014-03-26 System for managing extension modifications to web pages
US14/226,013 2014-03-26
PCT/US2015/022467 WO2015148651A1 (en) 2014-03-26 2015-03-25 System for managing extension modifications to web pages

Publications (2)

Publication Number Publication Date
CN106462590A CN106462590A (zh) 2017-02-22
CN106462590B true CN106462590B (zh) 2020-02-07

Family

ID=52829376

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580016382.XA Active CN106462590B (zh) 2014-03-26 2015-03-25 用于管理扩展对网页的修改的系统

Country Status (7)

Country Link
US (1) US9930095B2 (zh)
EP (1) EP3123361B1 (zh)
JP (1) JP6318266B2 (zh)
KR (1) KR101959428B1 (zh)
CN (1) CN106462590B (zh)
AU (1) AU2015236109B2 (zh)
WO (1) WO2015148651A1 (zh)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9532222B2 (en) 2010-03-03 2016-12-27 Duo Security, Inc. System and method of notifying mobile devices to complete transactions after additional agent verification
US9544143B2 (en) 2010-03-03 2017-01-10 Duo Security, Inc. System and method of notifying mobile devices to complete transactions
US9467463B2 (en) 2011-09-02 2016-10-11 Duo Security, Inc. System and method for assessing vulnerability of a mobile device
EP3028155B1 (en) * 2013-07-30 2019-08-21 FSLogix Inc. Managing configurations of computing terminals
US9930095B2 (en) * 2014-03-26 2018-03-27 Google Llc System for managing extension modifications to web pages
WO2016195847A1 (en) * 2015-06-01 2016-12-08 Duo Security, Inc. Method for enforcing endpoint health standards
US10666763B2 (en) * 2016-09-07 2020-05-26 Adobe Inc. Automatic integrity checking of content delivery network files
US20180143949A1 (en) * 2016-11-18 2018-05-24 Adobe Systems Incorporated Web Content Extension System and Platform
US10412113B2 (en) 2017-12-08 2019-09-10 Duo Security, Inc. Systems and methods for intelligently configuring computer security
US10628513B2 (en) * 2018-04-24 2020-04-21 Microsoft Technology Licensing, Llc Providing isolated extensibility for webpages with a unified manifest and omni-accessible platform script
US10938879B2 (en) * 2018-06-04 2021-03-02 Akamai Technologies, Inc. Third-party Ad acceleration
CN110851754A (zh) * 2018-07-27 2020-02-28 北京京东尚科信息技术有限公司 网页访问方法及系统、计算机系统和计算机可读存储介质
US10740103B2 (en) 2018-10-26 2020-08-11 Google Llc Probabilistic techniques for formatting digital components
US11538038B2 (en) * 2019-05-31 2022-12-27 Paypal, Inc. Systems and methods for remote detection of computer device attributes
US11321101B2 (en) 2019-07-10 2022-05-03 Vmware, Inc. Deployment and isolation of plugins in a virtualized computing environment
US11153295B2 (en) * 2019-08-28 2021-10-19 Vmware, Inc. Authentication of plugins in a virtualized computing environment
US11295007B2 (en) 2019-12-03 2022-04-05 Tableau Software, LLC Sandboxed application extensions
CN111666585B (zh) * 2020-04-16 2023-08-18 北京百度网讯科技有限公司 子应用访问的方法、装置、电子设备以及可读存储介质
CN111639285B (zh) * 2020-06-01 2022-08-09 黎明职业大学 一种关联浏览器中标签页、书签以及书签夹的信息处理方法
CN112363784A (zh) * 2020-10-26 2021-02-12 深圳市明源云科技有限公司 在应用程序中显示窗口的方法和装置
US11792234B1 (en) 2022-11-11 2023-10-17 Netskope, Inc. Browser extension identification and isolation

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101546334A (zh) * 2009-04-23 2009-09-30 腾讯科技(深圳)有限公司 在浏览器中提示网页信息搜索结果的方法、装置及浏览系统
US7797415B2 (en) * 2008-04-29 2010-09-14 Computer Associates Think, Inc. Automatic context-based baselining for transactions
US8196112B1 (en) * 2008-02-15 2012-06-05 Amazon Technologies, Inc. Systems and methods for testing widgets in computer environments
CN103430177A (zh) * 2011-03-14 2013-12-04 弗里塞恩公司 用于提供内容提供者指定的url关键字导航的方法及系统
US8667487B1 (en) * 2010-05-18 2014-03-04 Google Inc. Web browser extensions

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5991399A (en) * 1997-12-18 1999-11-23 Intel Corporation Method for securely distributing a conditional use private key to a trusted entity on a remote system
US6356951B1 (en) * 1999-03-01 2002-03-12 Sun Microsystems, Inc. System for parsing a packet for conformity with a predetermined protocol using mask and comparison values included in a parsing instruction
US6477550B1 (en) * 1999-03-16 2002-11-05 Mcafee.Com Corporation Method and system for processing events related to a first type of browser from a second type of browser
US7155737B1 (en) * 1999-05-11 2006-12-26 Entrust, Inc. Integrating user specified extensions into an information access system
US6321267B1 (en) * 1999-11-23 2001-11-20 Escom Corporation Method and apparatus for filtering junk email
US7506022B2 (en) * 2001-05-04 2009-03-17 Microsoft.Corporation Web enabled recognition architecture
US20030142560A1 (en) * 2001-12-07 2003-07-31 Pioneer Corporation Data recording medium, reproduction apparatus, recording apparatus, reproducing method, recording method, computer-readable recorded medium in which reproducing program is recorded, and computer-readable recorded medium in which recording program is recorded
JP2003296192A (ja) 2002-04-04 2003-10-17 Certrust Kk 電子署名・電子文書保管システム
US20050154887A1 (en) * 2004-01-12 2005-07-14 International Business Machines Corporation System and method for secure network state management and single sign-on
US7653712B1 (en) * 2004-09-30 2010-01-26 Emc Corporation Methods and apparatus for processing configuration data
JP4788212B2 (ja) 2005-07-13 2011-10-05 富士ゼロックス株式会社 デジタル署名プログラム及びデジタル署名システム
SG139580A1 (en) * 2006-07-20 2008-02-29 Privylink Pte Ltd Method for generating cryptographic key from biometric data
US7963839B2 (en) * 2006-09-19 2011-06-21 Mudalla Technology, Inc. Regulated gaming exchange
JP4224095B2 (ja) * 2006-09-28 2009-02-12 株式会社東芝 情報処理装置、情報処理プログラムおよび情報処理システム
US20090019525A1 (en) * 2007-07-13 2009-01-15 Dachuan Yu Domain-specific language abstractions for secure server-side scripting
US7975308B1 (en) * 2007-09-28 2011-07-05 Symantec Corporation Method and apparatus to secure user confidential data from untrusted browser extensions
JP2009146235A (ja) 2007-12-16 2009-07-02 Softbank Corp 広告システム及び広告方法
US8225097B2 (en) * 2008-01-28 2012-07-17 Seagate Technology Llc Anchor point-based digital content protection
JP2011253211A (ja) 2008-09-25 2011-12-15 Access Co Ltd アプリケーション制御方法、アプリケーション制御プログラム、サーバ装置、クライアント装置、およびアプリケーション制御システム
KR101074624B1 (ko) * 2008-11-03 2011-10-17 엔에이치엔비즈니스플랫폼 주식회사 브라우저 기반 어뷰징 방지 방법 및 시스템
US20100318964A1 (en) * 2009-06-12 2010-12-16 Microsoft Corporation Software extension analysis
JP5386295B2 (ja) 2009-10-15 2014-01-15 シャープ株式会社 広告表示システムおよび広告表示方法
EP2367128B1 (de) * 2010-03-16 2015-10-14 Stepover GmbH Verfahren und Vorrichtung zur elektronischen Signatur
US8707427B2 (en) 2010-04-06 2014-04-22 Triumfant, Inc. Automated malware detection and remediation
US8788849B2 (en) * 2011-02-28 2014-07-22 Sandisk Technologies Inc. Method and apparatus for protecting cached streams
JP5575071B2 (ja) * 2011-08-26 2014-08-20 株式会社東芝 情報処理装置、情報処理方法、およびプログラム
US8638935B2 (en) * 2012-01-12 2014-01-28 Apple Inc. System and method for key space division and sub-key derivation for mixed media digital rights management content
US9135445B2 (en) 2012-03-19 2015-09-15 Google Inc. Providing information about a web application or extension offered by website based on information about the application or extension gathered from a trusted site
KR101369253B1 (ko) 2012-05-10 2014-03-06 주식회사 안랩 웹 페이지의 정보 변조 차단 장치 및 방법
US20140047359A1 (en) * 2012-08-08 2014-02-13 Arnstein Osnes Teigene Mechanism for adding new search modes to user agent
US8977707B2 (en) * 2012-09-20 2015-03-10 International Business Machines Corporation Delivering offers
US9355223B2 (en) * 2013-03-29 2016-05-31 Citrix Systems, Inc. Providing a managed browser
US9853956B2 (en) * 2014-02-11 2017-12-26 Texas Instruments Incorporated JSON encryption and hashing with indication added to key-value
US9930095B2 (en) 2014-03-26 2018-03-27 Google Llc System for managing extension modifications to web pages

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8196112B1 (en) * 2008-02-15 2012-06-05 Amazon Technologies, Inc. Systems and methods for testing widgets in computer environments
US7797415B2 (en) * 2008-04-29 2010-09-14 Computer Associates Think, Inc. Automatic context-based baselining for transactions
CN101546334A (zh) * 2009-04-23 2009-09-30 腾讯科技(深圳)有限公司 在浏览器中提示网页信息搜索结果的方法、装置及浏览系统
US8667487B1 (en) * 2010-05-18 2014-03-04 Google Inc. Web browser extensions
CN103430177A (zh) * 2011-03-14 2013-12-04 弗里塞恩公司 用于提供内容提供者指定的url关键字导航的方法及系统

Also Published As

Publication number Publication date
US9930095B2 (en) 2018-03-27
WO2015148651A1 (en) 2015-10-01
JP6318266B2 (ja) 2018-04-25
KR101959428B1 (ko) 2019-03-18
AU2015236109B2 (en) 2017-12-07
KR20160135810A (ko) 2016-11-28
CN106462590A (zh) 2017-02-22
JP2017513129A (ja) 2017-05-25
EP3123361A1 (en) 2017-02-01
EP3123361B1 (en) 2021-05-05
AU2015236109A1 (en) 2016-09-29
US20150281318A1 (en) 2015-10-01

Similar Documents

Publication Publication Date Title
CN106462590B (zh) 用于管理扩展对网页的修改的系统
US11120401B2 (en) User generated content publishing system
US9916293B2 (en) Module specification for a module to be incorporated into a container document
JP5876043B2 (ja) 広告プライバシ管理
US8560840B2 (en) Method and system for authenticating a widget
JP5237272B2 (ja) ウェブビーコンの認証方法とそのシステム
US7730082B2 (en) Remote module incorporation into a container document
US7725530B2 (en) Proxy server collection of data for module incorporation into a container document
US7992135B1 (en) Certification of server-side partner plug-ins for analytics and privacy protection
US9692787B1 (en) System for controlling browser extensions
US20130238435A1 (en) Systems and methods for generating lead intelligence
US20070136201A1 (en) Customized container document modules using preferences
US9183002B2 (en) Method and system for providing a widget for displaying multimedia content
US20080098290A1 (en) Method and system for providing a widget for displaying multimedia content
US10693971B2 (en) Identifying the best suitable application to open a file shared via a link
KR20160092021A (ko) 제 3 자 애플리케이션 활동 데이터 수집을 위한 시스템 및 방법
US10218673B2 (en) Web content display system and method
Convers Grays 2.0: A Web 2.0 on-line Medical Social Bookmarking system using the Google App Engine and Django

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: American California

Applicant after: Google limited liability company

Address before: American California

Applicant before: Google Inc.

GR01 Patent grant
GR01 Patent grant