CN116244480A - 对信息资源上的内容的基于散列的动态限制 - Google Patents

对信息资源上的内容的基于散列的动态限制 Download PDF

Info

Publication number
CN116244480A
CN116244480A CN202310159074.9A CN202310159074A CN116244480A CN 116244480 A CN116244480 A CN 116244480A CN 202310159074 A CN202310159074 A CN 202310159074A CN 116244480 A CN116244480 A CN 116244480A
Authority
CN
China
Prior art keywords
content
remote
computing device
information resource
restricted
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.)
Pending
Application number
CN202310159074.9A
Other languages
English (en)
Inventor
M·布里西
H·戈登
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 CN116244480A publication Critical patent/CN116244480A/zh
Pending legal-status Critical Current

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/903Querying
    • G06F16/90335Query processing
    • G06F16/90344Query processing by using string matching techniques
    • 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]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/128Restricting unauthorised execution of programs involving web programs, i.e. using technology especially used in internet, generally interacting with a web browser, e.g. hypertext markup language [HTML], applets, java
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables
    • 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
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • 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
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9577Optimising the visualization of content, e.g. distillation of HTML documents
    • 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]
    • G06F21/12Protecting executable software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • 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]
    • G06F21/101Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM] by binding digital rights to specific entities
    • G06F21/1015Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM] by binding digital rights to specific entities to users

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Medical Informatics (AREA)
  • Information Transfer Between Computers (AREA)
  • Storage Device Security (AREA)

Abstract

本文提供了用于限制插入到信息资源中的内容的系统和方法。计算设备可以识别包括在信息资源中的内容元素。计算设备可以识别与包括在信息资源中的内容元素相对应的比特流。计算设备可以对所识别的比特流进行散列以生成与内容元素相对应的元素标识符。计算设备可以使用元素标识符来访问受限内容数据库。响应于在受限内容数据库中找到元素标识符,计算设备可以根据内容限制策略修改信息资源上的内容元素的呈现。

Description

对信息资源上的内容的基于散列的动态限制
本发明是以下发明专利申请的分案申请:申请号:201780014528.6,申请日:2017年1月24日,发明名称:对信息资源上的内容的基于散列的动态限制。
相关申请的交叉引用
本申请要求标题为“HASH-BASED DYNAMIC RESTRICTION OF CONTENT ONINFORMATION RESOURCES”的于2016年12月30日提交的美国专利申请第62/440,792号的优先权的权益,其通过引用其整体并入本文。
技术领域
本申请涉及用于限制插入到信息资源中的内容的系统和方法。
背景技术
在诸如互联网的计算机网络化环境中,信息资源(例如,网页)和包括在这种信息资源中的内容元素可以由在客户端设备上运行的应用(例如,网页浏览器)来解析和呈现。信息资源和其上的内容元素可以经由计算机网络化环境从不同服务器发送到客户端设备。
发明内容
至少一个方面涉及一种限制插入到信息资源中的内容的方法。具有一个或多个处理器的计算设备可以识别包括在信息资源中的内容元素,对该内容元素应用内容限制策略以用于修改内容元素的呈现。计算设备可以识别与包括在信息资源中的内容元素相对应的比特流。计算设备可以对所识别的比特流进行散列(hash)以生成与内容元素相对应的元素标识符(identifier,ID)。计算设备可以使用元素标识符来访问受限内容数据库。响应于在受限内容数据库中找到元素标识符,计算设备可以根据内容限制策略修改信息资源上的内容元素的呈现。
在一些实施方式中,计算设备可以使用元素标识符来访问存储在计算设备上的本地受限内容数据库。在一些实施方式中,响应于未在本地受限内容数据库中找到元素标识符,计算设备可以向远程设备发送对在与远程设备相关联的远程受限内容数据库上寻找元素标识符的请求。该请求的接收可以触发远程设备使用元素标识符访问远程受限内容数据库。在一些实施方式中,计算设备可以从远程设备接收指示元素标识符在与远程设备相关联的远程受限内容数据库上的响应。
在一些实施方式中,计算设备可以使用元素标识符来访问存储在计算设备上的本地受限内容数据库。本地受限内容数据库可以包括要被许可的元素标识符的第一列表和要被限制的元素标识符的第二列表。在一些实施方式中,响应于未在本地受限内容数据库中找到元素标识符,计算设备可以根据内容渲染限制扩展基于内容元素和信息资源的渲染属性来确定要修改内容元素。在一些实施方式中,响应于根据内容渲染限制扩展确定将内容限制策略应用于内容元素,计算设备可以将元素标识符插入到包括在本地受限内容数据库中的第二列表中。在一些实施方式中,响应于根据内容渲染限制扩展确定将内容限制策略应用于内容元素,计算设备可以将元素标识符发送到远程受限内容数据库中。
在一些实施方式中,计算设备可以使用元素标识符来访问存储在计算设备上的本地受限内容数据库。在一些实施方式中,响应于未在本地受限内容数据库中找到元素标识符,计算设备可以向远程设备发送对在与远程设备相关联的远程受限内容数据库上寻找元素标识符的请求。该请求的接收可以触发远程设备使用元素标识符访问远程受限内容数据库。响应于未在远程受限内容数据库中找到元素标识符,该请求的接收可以触发远程设备根据内容渲染限制扩展基于内容元素和信息资源的渲染属性来确定要修改内容元素。响应于根据内容渲染限制扩展确定将内容限制策略应用于内容元素,该请求的接收可以触发远程设备将元素标识符插入到远程受限内容数据库中。在一些实施方式中,计算设备可以从远程设备接收指示元素标识符在与远程设备相关联的远程受限内容数据库上的响应。
在一些实施方式中,响应于未在受限内容数据库上找到元素标识符,计算设备可以在内容元素在信息资源上的第一包含期间,将内容元素的属性设置为默认值。在一些实施方式中,计算设备可以在内容元素的第一包含之后,根据内容渲染限制扩展基于内容元素和信息资源的渲染属性确定要修改内容元素。在一些实施方式中,响应于根据内容渲染限制扩展确定将内容限制策略应用于内容元素,计算设备可以将元素标识符插入到受限内容数据库中。在一些实施方式中,如由内容限制策略指定的,计算设备可以在第一包含之后的内容元素的第二包含期间,从信息资源或第二信息资源中的至少一个信息资源中删除内容元素。
在一些实施方式中,计算设备可以允许将对内容元素的确认响应发送到远程服务器。在一些实施方式中,计算设备可以在将对内容元素的确认响应发送到远程服务器之后从信息资源中删除内容元素。在一些实施方式中,如由内容限制策略指定的,计算设备可以将第二内容元素插入到位于信息资源上的内容元素上方。在一些实施方式中,如由内容限制策略指定的,计算设备可以从信息资源中移除内容元素。在一些实施方式中,如由内容限制策略所指定的,计算设备可以将内容元素的可见性属性设置为空。在一些实施方式中,计算设备可以从表示内容元素的字节流的一部分中识别出与内容元素的一部分相对应的比特流。
至少一个方面涉及一种用于限制插入到信息资源中的内容的系统。该系统可以包括在一个或多个处理器上运行的资源解析器。资源解析器可以识别包括在信息资源中的内容元素,对该内容元素应用内容限制策略以用于修改内容元素的呈现。资源解析器可以识别与包括在信息资源中的内容元素相对应的比特流。该系统可以包括在一个或多个处理器上运行的元素散列器(hasher)。元素散列器可以对所识别的比特流进行散列以生成与内容元素相对应的元素标识符。该系统可以包括在一个或多个处理器上运行的内容限制器。内容限制器可以使用元素标识符访问受限内容数据库。响应于在受限内容数据库中找到元素标识符,内容限制器可以根据内容限制策略修改信息资源上的内容元素的呈现。
在一些实施方式中,内容限制器可以使用元素标识符来访问存储在计算设备上的本地受限内容数据库。在一些实施方式中,响应于未在本地受限内容数据库中找到元素标识符,内容限制器可以向远程设备发送对在与远程设备相关联的远程受限内容数据库上寻找元素标识符的请求。该请求的接收可以触发远程设备使用元素标识符访问远程受限内容数据库。在一些实施方式中,内容限制器可以从远程设备接收指示元素标识符在与远程设备相关联的远程受限内容数据库上的响应。
在一些实施方式中,内容限制器可以使用元素标识符来访问存储在计算设备上的本地受限内容数据库。在一些实施方式中,响应于未在本地受限内容数据库中找到元素标识符,内容限制器可以根据内容渲染限制扩展基于内容元素和信息资源的渲染属性确定要修改内容元素。在一些实施方式中,响应于根据内容渲染限制扩展确定要修改内容元素,内容限制器可以将元素标识符插入到本地受限内容数据库中。在一些实施方式中,响应于确定根据内容渲染限制扩展要修改内容元素,内容限制器可以将元素标识符发送到远程受限内容数据库以进行储存。
在一些实施方式中,内容限制器可以使用元素标识符来访问存储在计算设备上的本地受限内容数据库。在一些实施方式中,响应于未在本地受限内容数据库中找到元素标识符,内容限制器可以向远程设备发送对在与远程设备相关联的远程受限内容数据库上寻找元素标识符的请求。该请求的接收可以触发远程设备使用元素标识符访问远程受限内容数据库。响应于未在远程受限内容数据库中找到元素标识符,该请求的接收可以触发远程设备根据内容渲染限制扩展基于内容元素和信息资源的渲染属性确定要修改内容元素。响应于根据内容渲染限制扩展确定将内容限制策略应用于内容元素,该请求的接收可以触发远程设备将元素标识符插入到远程受限内容数据库中。在一些实施方式中,内容限制器可以从远程设备接收指示元素标识符在与远程设备相关联的远程受限内容数据库上的响应。
在一些实施方式中,响应于未在受限内容数据库上找到元素标识符,内容限制器可以在内容元素在信息资源上的第一包含期间,将内容元素的属性设置为默认值。在一些实施方式中,内容限制器可以在内容元素的第一包含之后,根据内容渲染限制扩展基于内容元素和信息资源的渲染属性确定要修改内容元素。在一些实施方式中,如由内容限制策略指定的,内容限制器可以在第一包含之后的内容元素的第二包含期间,从信息资源或第二信息资源中的至少一个信息资源中删除内容元素。
在一些实施方式中,内容限制器可以许可将对内容元素的确认响应发送到远程服务器。在一些实施方式中,内容限制器可以在将对内容元素的确认响应发送到远程服务器之后,从信息资源中删除内容元素。在一些实施方式中,如由内容限制策略指定的,内容限制器可以将第二内容元素插入到位于信息资源上的内容元素上方。在一些实施方式中,如由内容限制策略指定的,内容限制器可以从信息资源中移除内容元素。在一些实施方式中,如由内容限制策略指定的,内容限制器可以将内容元素的可见性属性设置为空。在一些实施方式中,资源解析器可以从表示内容元素的字节流的一部分中识别出与内容元素的一部分相对应的比特流。
至少一个方面涉及一种部署针对干扰信息资源完整性的脚本的对策的方法。具有一个或多个处理器的数据处理系统可以识别先前发送到客户端设备的信息资源上的第一内容元素。第一内容元素可以具有第一比特流。数据处理系统可以确定对信息资源的第一内容元素的渲染的干扰。响应于确定对信息资源上的第一内容元素的渲染的干扰,数据处理系统可以基于第一内容元素生成用于后续信息资源的第二内容元素。第二内容元素可以具有与第一比特流不同的第二比特流。数据处理系统可以向客户端设备发送包括第二内容元素的后续信息资源。第二内容元素的接收可以使得在客户端设备上运行的内容限制脚本响应于与第一比特流不同的第二比特流来应用基于渲染的限制策略。
在一些实施方式中,数据处理系统可以识别与将第一内容元素发送到客户端设备相对应的第一时间。在一些实施方式中,数据处理系统可以识别与从客户端设备接收到对第一内容元素的确认响应相对应的第二时间。在一些实施方式中,数据处理系统可以确定在第一时间和第二时间之间经过的时间大于预定阈值。
在一些实施方式中,数据处理系统可以识别第一内容元素的第一发送与第一内容元素的第一确认的第一接收之间的第一经过时间。在一些实施方式中,数据处理系统可以识别第一内容元素的第二发送与第一内容元素的第二确认的第二接收之间的第二经过时间。第二发送可以在第一发送之后。第二接收可以在第一接收之后。在一些实施方式中,数据处理系统可以确定第二经过时间比第一经过时间小预定阈值。
在一些实施方式中,数据处理系统可以在将信息资源发送到客户端设备之后,确定接收到对用作第一内容元素插入到信息资源中的内容的请求的预期时间。在一些实施方式中,数据处理系统可以识别接收到对将用于作为第一内容元素插入到信息资源中的内容的请求的实际时间。在一些实施方式中,数据处理系统可以确定接收到对内容的请求的预期时间和实际时间相差超过预定阈值。
在一些实施方式中,数据处理系统可以在将信息资源发送到客户端设备之后,确定接收到对插入到信息资源中的第一内容元素的确认响应的预期时间。在一些实施方式中,数据处理系统可以识别对插入到信息资源中的第一内容元素的确认响应的实际时间。在一些实施方式中,数据处理系统可以确定接收到确认响应的预期时间和实际时间相差超过预定阈值。
在一些实施方式中,数据处理系统可以确定客户端设备没有发送对用于作为第一内容元素插入到信息资源中的内容的请求。在一些实施方式中,数据处理系统可以修改第一内容元素的视觉特性以生成第二内容元素,而引起从第一比特流到第二比特流的改变。在一些实施方式中,数据处理系统可以修改第一内容元素的文件路径名以生成第二内容元素,而引起从第一比特流到第二比特流的改变。在一些实施方式中,数据处理系统可以修改第一内容元素的确认响应代码以生成第二内容元素,而引起从第一比特流到第二比特流的改变。在一些实施方式中,数据处理系统可以将附属代码(appendage code)插入到第一内容元素中以生成第二内容元素。附属代码可以被配置为生成第二比特流以引起从第一比特流到第二比特流的改变。
至少一个方面涉及一种用于部署针对干扰信息资源完整性的脚本的对策的系统。该系统可以包括在具有一个或多个处理器的数据处理系统上运行的干扰检测器。干扰检测器可以识别先前发送到客户端设备的信息资源上的第一内容元素。第一内容元素可以具有第一比特流。干扰检测器可以确定对信息资源上的第一内容元素的渲染的干扰。该系统可以具有在数据处理系统上运行的内容修改器。响应于确定对信息资源上的第一内容元素的渲染的干扰,内容修改器可以基于第一内容元素生成用于后续信息资源的第二内容元素。第二内容元素可以具有与第一比特流不同的第二比特流。内容修改器可以向客户端设备发送包括第二内容元素的后续信息资源。第二内容元素的接收可以使得在客户端设备上运行的内容限制脚本响应于与第一比特流不同的第二比特流来应用基于渲染的限制策略。
在一些实施方式中,干扰检测器可以识别与将第一内容元素发送到客户端设备相对应的第一时间。在一些实施方式中,干扰检测器可以识别与从客户端设备接收到对第一内容元素的确认响应相对应的第二时间。在一些实施方式中,干扰检测器可以确定在第一时间和第二时间之间经过的时间大于预定阈值。
在一些实施方式中,干扰检测器可以识别第一内容元素的第一发送与对第一内容元素的第一确认的第一接收之间的第一经过时间。在一些实施方式中,干扰检测器可以识别第一内容元素的第二发送与对第一内容元素的第二确认的第二接收之间的第二经过时间。第二发送可以在第一发送之后。第二接收可以在第一接收之后。在一些实施方式中,干涉检测器可以确定第二经过时间比第一经过时间小预定阈值。
在一些实施方式中,干扰检测器可以在将信息资源发送到客户端设备之后确定接收到对用作第一内容元素插入到信息资源中的内容的请求的预期时间。在一些实施方式中,干扰检测器可以识别接收到对用于作为第一内容元素插入到信息资源中的内容的请求的实际时间。在一些实施方式中,干扰检测器可以确定接收到对内容的请求的预期时间和实际时间相差超过预定阈值。
在一些实施方式中,干扰检测器可以在向客户端设备发送信息资源之后确定接收到对第一内容元素到信息资源中的确认响应的预期时间。在一些实施方式中,干扰检测器可以识别对第一内容元素到信息资源中的确认响应的实际时间。在一些实施方式中,干扰检测器可以确定接收到确认响应的预期时间和实际时间相差超过预定阈值。在一些实施方式中,干扰检测器可以确定客户端设备没有发送对用作第一内容元素插入到信息资源中的内容的请求。
在一些实施方式中,内容修改器可以修改第一内容元素的视觉特性以生成第二内容元素,而引起从第一比特流到第二比特流的改变。在一些实施方式中,内容修改器可以修改第一内容元素的文件路径名以生成第二内容元素,而引起从第一比特流到第二比特流的改变。在一些实施方式中,内容修改器可以修改第一内容元素的确认响应代码以生成第二内容元素,而引起从第一比特流到第二比特流的改变。在一些实施方式中,内容修改符可以将附属代码插入到第一内容元素中以生成第二内容元素。附属代码可以被配置为生成第二比特流以引起从第一比特流到第二比特流的改变。
以下详细讨论这些和其他方面以及实施方式。前述信息和以下详细描述包括各个方面和实施方式的说明性示例,并提供用于理解所要求保护的方面和实施方式的性质和特点的概述或框架。附图提供了对各个方面和实施方式的说明和进一步理解,并且被并入且构成本说明书的一部分。
附图说明
附图没有意图按比例绘制。各个附图中相同的附图标号和名称指示相同的元件。为清楚起见,并非每个组件都可以在每个图中标注。在附图中:
图1是描绘根据说明性实施方式的用于内容的基于散列的动态限制和对其的对策的部署的计算机网络化环境的一种实施方式的框图;
图2是描绘根据说明性实施方式的用于限制插入到信息资源中的内容的系统的框图;
图3是描绘根据说明性实施方式的由系统许可或限制信息资源的内容元素以用于限制内容的流程的框图;
图4是描绘根据说明性实施方式的限制插入到信息资源中的内容的方法的流程图;
图5是描绘根据说明性实施方式的限制插入到信息资源中的内容的方法的流程图;
图6是描绘根据说明性实施方式的用于部署针对干扰信息资源的完整性的脚本的对策的系统的框图;
图7是描绘根据示例性实施方式的由系统修改信息资源的内容元素以用于部署针对干扰信息资源的完整性的脚本的对策的流程的框图;
图8是描绘根据说明性实施方式的针对干扰信息资源的完整性的脚本的对策的方法的流程图;
图9是描绘根据说明性实施方式的针对干扰信息资源的完整性的脚本的对策的方法的流程图;以及
图10是示出根据说明性实施方式的用于可以被采用来实施本文描述和示出的系统和方法的元件的计算机系统的一般架构的框图。
具体实施方式
以下是内容的基于散列的动态限制以及对其的对策的部署的方法、装置和系统的有关的各种概念及实施方式的更详细描述。以上介绍了并在下面更详细讨论的各种概念可以以多种方式中的任何一种来实施,因为所描述的概念不限于任何特定的实施方式。
为了阅读以下各种实施例的描述,以下对说明书各章节和它们各自的内容的描述可能是有帮助的:
章节A描述了用于内容的基于散列的动态限制和对其的对策的部署的计算机网络化环境。
章节B描述了限制插入信息资源中的内容的系统和方法。
章节C描述了部署针对干扰信息资源完整性的脚本的对策的系统和方法。
章节D描述了一种计算系统体系结构,其对于实践本文详细描述的系统和方法可以是有用的。
A.用于信息资源上的内容的基于散列的动态限制以及对其的对策的部署的计算 机网络化环境
图1是描绘用于信息资源上的内容的基于散列的动态限制以及对其的对策的部署的环境的一种实施方式的框图。环境100包括至少一个数据处理系统110,其经由网络105连接到至少一个内容提供方设备115、至少一个内容发布方设备120、至少一个客户端设备125、至少一个代理设备145和至少一个远程内容限制器设备150。
简要概述,在从客户端设备125请求内容时,数据处理系统110可以经由网络105向客户端设备125提供包括一个或多个内容元素的信息资源。可以从内容提供方设备120检索信息资源并从内容提供方设备115获得一个或多个内容元素。可以由应用160处理信息资源和其上的内容元素,以用于在客户端设备125上渲染。接着,远程内容限制器设备150可以使用呈现限制器165来禁用或者在一些实施方式中干扰由数据处理系统110向客户端设备125提供的信息资源上的一些内容元素的显示或渲染。可以向代理设备145和客户端设备125提供呈现限制器165,以在相应的设备上运行呈现限制器165。为了保持信息资源及其上的内容元素的完整性,数据处理系统110可以运行对策脚本以生成内容元素的变型。通过生成使得呈现限制器165重新处理所生成的变型中的每一个的内容元素的变型,对策脚本可能降低运行呈现限制器165的计算设备的性能,因为当重新处理所生成的变型时,呈现限制器165利用了计算设备的计算资源。本文提供网络105、数据处理系统110、内容提供方设备115、内容发布方设备120、客户端设备125、代理设备145、远程内容限制器设备150及其组件的附加细节。
更详细地,数据处理系统110可以包括至少一个处理器和存储器,即处理电路。存储器存储处理器可运行的指令,该指令在由处理器运行时,使得处理器执行本文描述的操作中的一个或多个。处理器可以包括微处理器、专用集成电路(application-specificintegrated circuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)等或其组合。存储器可以包括但不限于电子、光学、磁性或任何其他储存器或能够向处理器提供程序指令的传输设备。存储器还可以包括软盘、CD-ROM、DVD、磁盘、存储器芯片、ASIC、FPGA、只读存储器(read-only memory,ROM)、随机存取存储器(random-access memory,RAM)、电可擦除ROM(electrically-erasable ROM,EEPROM)、可擦除可编程ROM(erasable-programmable ROM,EPROM)、闪速存储器、光学介质或处理器可从其中读取指令的任何其他合适的存储器。该指令可以包括来自任何合适的计算机编程语言的代码。数据处理系统可以包括可以执行各种功能的一个或多个计算设备或服务器。在一些实施方式中,数据处理系统可以包括被配置为托管拍卖的内容放置系统。在一些实施方式中,数据处理系统不包括内容放置系统,而是被配置为经由网络105与内容放置系统通信。
网络105可以包括诸如互联网、局域网、广域网、城域网或其他区域网络、内联网、卫星网络的计算机网络,诸如语音或数据移动电话通信网络的其他计算机网络,以及它们的组合。系统100的数据处理系统110可以经由网络105,例如,与至少一个内容提供方设备115、至少一个内容发布方设备120、至少一个客户端设备125或至少一个远程内容限制器设备150进行通信。网络105可以是在客户端设备125、数据处理系统110和一个或多个内容源(诸如web服务器等)之间中继信息的任何形式的计算机网络。在一些实施方式中,网络105可以包括互联网和/或其他类型的数据网络,诸如局域网(local area network,LAN)、广域网(wide area network,WAN)、蜂窝网络、卫星网络或其他类型的数据网络。网络105还可以包括被配置为在网络105内接收和/或发送数据的任何数量的计算设备(例如,计算机、服务器、路由器、网络交换机等)。网络105还可以包括任何数量的硬连线和/或无线连接。客户端设备125可以无线地(例如,经由WiFi、蜂窝、无线电等)与硬连线(例如,经由光纤电缆、CAT5电缆等)到网络105中的其他计算设备的收发器进行通信。客户端设备125还可以经由代理设备145(例如,路由器、网络交换机或网关)与网络105的计算设备无线地通信。
内容提供方设备115可以包括服务器或由内容提供方实体操作的其他计算设备,以向内容发布方设备120或数据处理系统110提供内容元素。由内容提供方设备115提供的内容可以包括用于在诸如网站或网页之类的信息资源上显示的包括主要内容(例如,由内容发布方设备120提供的内容)的第三方内容元素。内容元素也可以被显示在搜索结果网页上。与内容提供方设备115相关联的内容元素可以被显示在除网页之外的信息资源上,诸如作为在智能电话或其他客户端设备125上运行应用的一部分而显示的内容。内容发布方设备120或数据处理系统110继而可以选择内容提供方设备115的内容元素。数据处理系统110可以运行内容放置过程以基于各个内容元素的各种性能度量来选择内容元素。内容发布方设备120或数据处理系统110可以发送内容提供方计算设备的所选择的内容元素,以用于在客户端设备125处的信息资源上显示。
内容发布方设备120可以包括服务器或由内容发布实体操作的其他计算设备,以经由网络105提供主要内容用于显示。例如,内容发布方设备120可以由提供主要内容用于在网页上显示的网页运营商管理。内容发布方设备120还可以经由网络105提供从内容提供方设备115接收的用于显示的第三方内容。主要内容可以包括除了由内容发布方设备120提供的内容之外的内容,并且网页可以包括被配置用于显示由内容发布方设备120从内容提供方设备115接收的内容元素的内容槽(content slot)。例如,内容发布方设备120可以操作公司的网站并且可以提供关于该公司的内容用于在网站的网页上显示。网页可以包括被配置用于显示从内容提供方设备115接收的诸如图像、文本、视频或其任何组合的内容元素的内容槽。在一些实施方式中,内容发布方设备120包括操作搜索引擎网站的搜索引擎运行商的搜索引擎计算设备(例如,服务器)。搜索引擎网页的主要内容(例如,结果或登陆网页)可以包括搜索的结果以及在内容槽中显示的第三方内容元素,诸如来自内容提供方设备115的内容元素。在一些实施方式中,内容发布方设备120可以包括用于服务视频内容的服务器。
内容发布方设备120可以选择从内容提供方设备115接收的一个或多个内容元素以包括在具有主要内容的信息资源中,以经由网络105在客户端设备125上显示。内容发布方设备120可以响应于来自客户端设备125的对内容的请求,向客户端设备125发送从内容发布方设备115接收的内容元素以及主要内容。在一些实施方式中,在发送主要内容之后,内容发布方设备120可以响应于来自客户端设备125的对附加内容的请求,向客户端设备125发送从内容发布方设备115接收的内容元素。在一些实施方式中,内容发布方设备120可以从客户端设备125接收对主要内容的初始请求,并且作为响应,将包括主要内容的信息资源发送到客户端设备125。在一些实施方式中,数据处理系统110可以选择从内容提供方设备115接收的一个或多个内容元素,并选择从内容发布方设备120接收的主要内容(例如,正文、段落、文本、视频或通常可以跨越信息资源的中心的其他元素)。数据处理系统110可以使用来自内容提供方设备115的所选择的一个或多个内容元素和来自内容发布方设备120的主要内容来生成信息资源。本文下面描述关于生成信息资源的数据处理系统110的功能的进一步细节。
客户端设备125可以包括被配置为经由网络105或通过代理设备145经由网络105进行通信以显示诸如由内容发布方设备120提供的内容(例如,主要网页内容或其他信息资源)和由内容提供方设备115提供的内容(例如,配置用于在信息资源中显示的内容元素)之类的数据的计算设备。客户端设备125、内容提供方设备115、内容发布方设备120和远程内容限制器设备150可以包括台式计算机、膝上型计算机、平板计算机、智能电话、个人数字助理、移动设备、消费者计算设备、服务器、客户端、数字视频记录器、电视机的机顶盒、视频游戏机或被配置为经由网络105通信的任何其他计算设备。客户端设备125可以是通信设备,终端用户可以通过该通信设备提交对接收内容的请求。请求可以是对搜索引擎的请求,并且请求可以包括搜索查询。在一些实施方式中,请求可以包括对访问网页的请求。
客户端设备125可以运行应用160。应用160可以包括例如互联网浏览器、移动应用、或能够运行或以其他方式调用由客户端设备125处理的计算机可运行指令(诸如包括在信息资源中的计算机可运行指令或包括在信息资源中的内容元素)的任何其他计算机程序。信息资源和其中包括的内容元素可以对应于脚本、逻辑、标记或指令(例如,超文本标记语言(HyperText Markup Language,HTML)、可扩展超文本标记语言(ExtensibleHyperText Markup Language,XHTML)、可扩展标记语言(Extensible Markup Language,XML)、级联样式表(Cascading Style Sheets,CSS)、JavaScript、或其任何组合)。应用160可以包括任何数量的组件,诸如文档树生成器、渲染树生成器和显示模块,以处理信息资源和其中包括的内容元素。文档树生成器可以解析信息资源以生成文档对象模型(DocumentObject Model,DOM)树,其包括以分层方式布置的信息资源的内容元素。使用DOM树,渲染树生成器可以生成指定信息资源的内容元素的视觉属性或特质的渲染树。显示模块可以基于渲染树将信息资源渲染并显示到客户端设备125的显示器上。
代理设备145可以包括在客户端设备125和网络105之间部署的计算设备。代理设备145可以被配置为经由网络105与一个或多个其他计算设备(诸如数据处理系统110、内容提供方设备115、内容发布方设备125)通信。代理设备145可以是例如路由器、网络交换机、网关、网络节点、或被配置为从客户端设备125接收和转发数据分组到网络105或从网络105接收和转发数据分组到客户端设备125的任何其他计算设备115。
远程内容限制器设备150可以包括服务器或由内容过滤实体(例如,脚本拦截器、广告拦截器、互联网服务提供商(Internet Service Provider,ISP)、其他内容提供方等)操作的其他计算设备,以提供用于在连接到网络105的计算设备上运行的呈现限制器165。在一些实施方式中,远程内容限制器150可以提供呈现限制器165,以用于在代理设备145或客户端设备125处的安装和运行。呈现限制器165可以被安装为单独的应用或被安装为对在代理设备145和客户端设备125处运行的应用的扩展。可以在远程内容限制器设备150、代理设备145、客户端设备125处独立地运行呈现限制器165的功能,或者跨远程内容限制器设备150、代理设备145、客户端设备125而相结合地运行呈现限制器165的功能。当被运行时,呈现限制器165可以修改或改变经由网络105提供给客户端设备125的信息资源的内容元素。
客户端设备125、代理设备145和远程内容限制器设备150可以运行呈现限制器165。呈现限制器165可以包括任何数量的模块、组件或数据库,以修改或改变信息资源上的内容元素。呈现限制器165可以包括至少一个处理单元、服务器、虚拟服务器、电路、引擎、代办(agent)、器具或其他逻辑设备,诸如可编程逻辑阵列,其被配置为经由网络105除了与运行呈现限制器165的设备通信之外还与其他计算设备通信。呈现限制器165可以包括或运行至少一个计算机程序或至少一个脚本。呈现限制器165可以包括软件和硬件的组合,诸如被配置为运行一个或多个脚本的一个或多个处理器。在一些实施方式中,呈现限制器165可以是扩展、追加组件(add-on)或安装到在客户端设备125上运行的应用160的扩展。在一些实施方式中,呈现限制器165可以是与应用160接口的单独的独立可执行组件。
内容提供方设备115、内容发布方设备120、客户端设备125和远程内容限制器设备150可以包括处理器和存储器,即处理电路。存储器存储机器指令,该指令在由处理器运行时,使得处理器执行本文描述的操作中的一个或多个。处理器可以包括微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)等或其组合。存储器可以包括但不限于电子、光学、磁性或能够向处理器提供程序指令的任何其他储存器或传输设备。存储器还可以包括软盘、CD-ROM、DVD、磁盘、存储器芯片、ASIC、FPGA、只读存储器(ROM)、随机存取存储器(RAM)、电可擦除ROM(EEPROM)、可擦除可编程ROM(EPROM)、闪速存储器、光学介质或处理器可从其读取指令的任何其他合适的存储器。指令可以包括来自任何合适的计算机编程语言的代码。
内容提供方设备115、内容发布方设备120、客户端设备125和远程内容限制器设备155还可以包括一个或多个用户接口设备。通常,用户接口设备是指通过生成感官信息(例如,显示器上的可视化、一个或多个声音等)向用户传达数据和/或将从用户接收到的感官信息转换为电信号的任何电子设备(例如,键盘、鼠标、定点设备、触摸屏显示器、麦克风等)。根据各种实施方式,一个或多个用户接口设备可以在内容提供方设备115、内容发布方设备120和客户端设备125的外壳内部(例如,内置显示器、麦克风等),或在内容提供方设备115、内容发布方设备120、客户端设备125和远程内容限制器设备155的外壳外部(例如,连接到客户端设备125的监视器、连接到客户端设备125的扬声器等)。例如,内容提供方设备115、内容发布方设备120、客户端设备125和远程内容限制器设备150可以包括电子显示器,其使用经由网络105从一个或多个内容源和/或从数据处理系统110接收的网页数据可视地显示网页。
数据处理系统110可以包括至少一个服务器。例如,数据处理系统110可以包括位于至少一个数据中心或服务器群(server farm)中的多个服务器。在一些实施方式中,数据处理系统110包括内容放置系统。数据处理系统110可以包括至少一个内容请求模块130、至少一个资源组装器模块135和至少一个数据库140。内容请求模块130和资源组装器模块135各自可以包括至少一个处理单元、服务器、虚拟服务器、电路、引擎、代办、器具或其他逻辑设备,诸如可编程逻辑阵列,其被配置为经由网络105与数据库140通信以及与其他计算设备(例如,内容提供方设备115、内容发布方设备120或客户端设备125)通信。
内容请求模块130、资源组装器模块135、数据库140可以包括或运行至少一个计算机程序或至少一个脚本。内容请求模块130和资源组装器模块135可以是单独的组件、单一组件或数据处理系统110的一部分。内容请求模块130和资源组装器模块135可以包括软件和硬件的组合,诸如被配置为运行一个或多个脚本的一个或多个处理器。
数据处理系统110还可以包括一个或多个内容存储库或数据库140。数据库140可以对于数据处理系统110是本地的。在一些实施方式中,数据库140可以对于数据处理系统110是远程的,但是可以经由网络105与数据处理系统110通信。数据库140可以包括信息资源和将被包括在信息资源中的内容元素等,以便服务于客户端设备125。以下详细描述存储在数据库140中的数据的附加细节。
内容请求模块130可以从客户端设备125接收对内容的请求。对内容的请求可以包括对信息资源的请求或对信息资源的内容元素的请求。对内容的请求可以包括与客户端设备125相对应的设备标识符。对内容的请求可以包括识别在客户端设备125上运行的应用的应用简档。对内容的请求可以包括对于信息资源或内容元素的标识符。例如,对内容的请求可以包括引用特定资源的统一资源定位符(Uniform Resource Locator,URL),诸如网页(例如,“https://www.example.com/homepage.html”)。信息资源的URL的主机名可能与内容元素的URL的主机名不同。例如,信息资源的URL可以是“https://www.example_publisher.com/index.html”,而内容元素的URL可以是“https://www.example_thirdparty.com/content_item_271828.html”。对内容元素的请求的URL可以包括与信息资源的URL相同的主机页面。例如,信息资源的URL可以是“https://www.example.com/index.html”,而内容元素的URL可以是“https://www.example.com/content_item_978.html”。内容请求模块130还可以为附加数据而解析对内容的请求。
响应于从客户端设备125接收对内容的请求,资源组装器模块135可以基于该请求的地址或标识符来发送信息资源或对于信息资源的内容元素。资源组装器模块135可以基于地址或标识符来识别包括在对内容的请求中的信息资源和内容元素。资源组装器模块135可以访问数据库140以选择由地址或标识符识别的信息资源和内容元素。在一些实施方式中,资源组装器模块135可以向内容提供方115或内容发布方120发送请求,以访问、检索或以其他方式接收由地址或标识符识别的信息资源或内容元素。
资源组装器模块135可以基于来自内容发布方设备120或内容提供方设备115的重定向将对于信息资源的内容元素或信息资源发送到客户端设备125。内容发布方设备125还可以配置域或地址,使得对访问由内容发布方设备125维护的信息资源的请求被引导到数据处理系统110。内容请求模块130可以接收对检索或访问内容发布方设备125的信息资源的请求。在一些实施方式中,该请求可以包括设备标识符或资源组装器模块135可以用来选择与从其接收到请求的客户端设备的请求相关的内容的其他信息(例如,使用内容放置系统)。资源组装器模块135可以访问内容提供方设备115或代表内容提供方设备115维护内容元素的任何其他服务器或设备。
资源组装器模块135可以代表一个或多个内容发布方设备120和内容提供方设备115将内容发送到客户端设备125。资源组装器模块135可以向客户端设备125发送或转发由地址或标识符识别的信息资源或内容元素。例如,数据处理系统110可以从客户端设备125接收对信息资源或内容元素的请求。该请求可以包括引用内容发布方设备120之一和内容提供方设备115之一的地址。在该示例中,资源组装器模块135可以将对信息资源的请求转发到相应的内容发布方120。资源组装器模块135还可以向相应的内容提供方设备115发送对用于插入到信息资源中的内容元素的请求。在从相应的内容发布方120接收信息资源和从相应的内容提供方设备115接收内容元素时,资源组装器模块135可以将内容文档转发到与原始请求相关联的客户端设备125。
资源组装器135可以生成包括一个或多个内容元素的信息资源。在一些实施例中,资源组装器135可以修改由内容发布方设备125维护的现有信息资源以插入由内容提供方设备115提供的内容元素。在一些实施方式中,资源组装器135可以生成新的信息资源以包括来自内容发布方设备125和内容提供方设备115的内容元素。信息资源的内容元素的子集可以包括来自内容发布方设备120的主要内容。信息资源的内容元素的另一子集可以包括来自内容提供方设备115的第三方内容。主要内容和第三方内容可以包括例如文本内容元素、图像内容元素和视频内容元素等。第三方可以包括嵌入式链接,以重定向客户端设备125来从内容提供方设备115或内容发布方设备120检索与链接的地址相对应的内容。主要内容的源地址(例如,URL)最初可以与第三方内容的源地址不同。在一些实施方式中,资源组装器135可以将主要内容和第三方内容的内容元素的源地址修改为相同的源地址。在一些实施方式中,内容发布方设备120可以运行或托管资源组装器135。
接着,在远程内容限制器设备150、代理设备145或客户端设备125处运行的呈现限制器165可以尝试修改或改变信息资源的内容元素。呈现限制器165还可以将附加内容元素插入到信息资源中以模糊所识别的内容元素。在一些实施方式中,呈现限制器165可以使得所识别的内容元素的呈现被修改,从而使内容元素以与原始呈现格式不同的格式来呈现。数据处理系统110继而可以部署针对呈现限制器165的对策,以维持通过网络105发送的信息资源和内容元素的完整性。
B.限制插入到信息资源中的内容的系统和方法
信息资源可以包括一个或多个内容元素(例如,内联框架、图像和分段等)。内容元素可以定义信息资源的视觉内容组成。例如,信息资源可以包括主要内容(例如,正文)和包括图像的内容元素。应用(例如,网页浏览器)可以使用这样的内容元素来处理、渲染并在计算设备的显示器上显示信息资源。这些内容元素中的一些可以源自与提供信息资源的服务器不同的服务器。如此以来,具有这样的内容元素的信息资源可能遭受安全漏洞。例如,代理设备可以截取原来用于信息资源的内容元素,并用其自己的内容元素替代截取的内容元素。这样的内容元素可能包括恶意代码,诸如恶意软件、特洛伊木马和病毒。另外,由于人机交互(human-computer interaction,HCI),即使没有注入恶意代码,这些内容元素也可能干扰用户阅读或查看信息资源的主要内容的能力。例如,一个内容元素可以具有与信息资源上的所有剩余内容元素不同的颜色,从而使用户区分主要内容或其他内容元素。
可以使用多种技术禁止内容元素被包含或显示在信息资源上。一种技术可以是使用源地址来识别内容元素来自与信息资源的其余部分不同的源。然而,如果内容元素的源地址与信息资源相同或者如果没有对用于插入到信息资源中的内容元素的单独请求,则该技术可能无法识别这样的内容元素。另一种技术可以是使用图像处理技术来识别内容元素,以检测内容元素和底层信息资源之间的差异。然而,这样的技术可能在计算上很昂贵,导致计算机性能的滞后和降级。
为了解决这些和其他技术挑战,本文提出的系统可以利用散列函数来识别和禁用内容元素。与图像处理算法相比,散列函数可能在计算上较不复杂,并且因此可能占用较少的计算处理能力。运行呈现限制脚本的计算设备可以识别信息资源上的哪些内容元素要禁用。对于每个内容元素,客户端设备可以识别对应的比特流。然后,计算设备可以使用对应的比特流作为散列函数的输入参数来计算散列值,以生成元素标识符。
然后,计算设备可以用所计算的元素标识符来访问已知受限内容元素的本地或在服务器上的数据库,并且可以基于是否找到元素标识符来应用内容限制策略。如果在数据库中找到元素标识符,则计算设备可以从信息资源中移除相应的内容元素。另一方面,如果未找到元素标识符,则客户端设备可以将图像处理算法应用于内容元素以确定是否从信息资源中移除内容元素。计算设备还可以将元素标识符发送到服务器以确定元素标识符是否在存储在服务器处的受限内容元素的数据库上。一旦被接收,服务器还可以执行图像处理算法。因此,计算设备可以使用具有相对低的处理器和存储器要求的技术来执行内容元素的初始分析。另外,服务器可以被用于执行相对的处理器密集型技术,从而可以提供内容元素的高精度识别,而无需对所有内容元素使用处理器密集型技术,或要在客户端设备处执行的任何高度处理器密集型技术。利用该技术,可以减少对图像处理技术来检测内容元素的依赖。此外,由于计算散列函数比图像处理算法消耗更少的计算能力,所以计算设备和服务器的处理器和存储器可以被释放用于其他功能。
参照图2,图2是描绘用于限制插入到信息资源中的内容的系统200的框图。系统200可以是如图1的背景下的系统100中所描述的应用160和呈现限制器165的详细视图。总的来说,系统200可以包括应用160、呈现限制器165和远程受限内容数据库245。应用160可以在客户端设备125上运行,并且可以包括从数据处理系统110或内容发布方设备120接收的信息资源205。信息资源205可以包括一个或多个内容元素210A-N。呈现限制器165可以独立地或结合地在计算设备(诸如客户端设备125、代理设备145或远程内容限制器设备150)上运行。呈现限制器165可以包括资源解析器215、元素散列器220、计算设备、渲染限制器230、内容限制策略数据库235和本地受限内容数据库240。呈现限制器165可以与远程受限内容数据库245通信。
更详细地,资源解析器215可以识别包括在信息资源205中的内容元素210A-N,对该内容元素应用用于修改内容元素210A-N的呈现的内容限制策略。内容限制策略可以被存储在内容限制策略数据库235处并由呈现限制器165维护。内容限制策略可以指定要进一步分析内容元素210A-N的哪些元素类型以及如何修改被识别为受限制的内容元素210A-N。资源解析器215可以与应用160接口以访问信息资源205和信息资源205中包括的内容元素210A-N。
由呈现限制器165应用的内容限制策略可以指定如何修改、改变或禁用所识别的内容元素210A-N或包括这样的内容元素210A-N的信息资源205。在下文中描述关于内容元素210A-N和包括内容元素210A-N的信息资源205的修改的细节。内容限制策略可以被指定于内容提供方设备115或内容发布方设备120的特定域。内容限制策略可以被指定于特定客户端设备125。内容限制策略可以被指定特定账户标识符或与一个或多个客户端设备125相关联的用户简档。内容限制策略可以是与一个或多个客户端设备125相关联的用户简档的特定特点信息。内容限制策略可以被指定于在客户端设备125处运行的特定应用160(例如,移动应用、某些网页浏览器等)。内容限制策略可以被指定于对在客户端设备125处运行的应用160的任何接口程序(例如,插件、追加组件等)。
根据内容限制策略,资源解析器可以识别包括在信息资源205中的内容元素210A-N的子集以供进一步分析。资源解析器215可以识别包括在信息资源205中的每个内容元素210A-N的元素类型。元素类型可以包括正文、段落、分区、分段、内联框架、图像、画布、小应用程序(applet)、脚本、音频、视频、表格和列表等中的一个。元素类型可以对应于HTML标签(例如,对于内联框架的“<iframe>”)。在一些实施方式中,内容限制策略可以指定要进一步分析的元素类型(例如,内联框架、图像、小应用程序等)。如由内容限制策略指定的,资源解析器215可以识别与要进一步分析的元素类型匹配的内容元素210A-N的子集。以这种方式,呈现限制器165可以减少将被处理的内容元素210A-N的数量,从而释放计算资源。
为了确定是否要将内容限制策略应用于内容元素210A-N,资源解析器215可以识别与包括在信息资源205中的内容元素210A-N相对应的比特流。信息资源205可以对应于二进制序列(例如,字节数组或字节流)。包括在信息资源205中的每个内容元素210A-N可以对应于二进制序列的一部分。在一些实施方式中,资源解析器215可以与应用160接口以访问对应于信息资源205的二进制序列。在一些实施方式中,资源解析器215可以与应用160接口以访问与内容元素210A-N之一相对应的二进制序列的一部分。在一些实施方式中,如由内容限制策略指定的,资源解析器215可以与应用160接口以访问与内容元素210A-N的子集相对应的二进制序列的一部分,该内容元素210A-N被识别为与要进一步分析的元素类型匹配。在一些实施方式中,资源解析器215可以识别内容元素210A-N的比特流的子集部分(例如,比特流中的前N个比特或比特流中的每第五个比特等)。
在资源解析器215已经识别出内容元素210A-N的整个比特流的情况下,元素散列器220可以对所识别的比特流进行散列以生成与内容元素210A-N相对应的元素标识符。在一些实施方式中,元素散列器220可以对所识别的位流使用散列函数以生成与内容元素210A-N相对应的元素识别符。散列函数可以包括针对内容元素210A-N识别的比特流的任何组合,诸如加密散列函数(例如,安全散列算法(SHA-1、SHA-2和SHA-3)、消息摘要算法(MD2、MD4、MD5和MD6)、校验和函数等)、循环冗余校验算法、散列表(例如,关联数组)、以及几何散列函数、或任何一对一散列函数等。散列函数可以被配置或选择以最小化散列冲突,使得识别两个不同内容元素210A-N的相同元素标识符的可能性降低。在一些实施方式中,元素散列器220可以对内容元素210A-N的比特流的子集部分进行散列。
在一些实施方式中,元素散列器220所使用的散列函数可以在呈现限制器165的所有实例中是共同的(例如,在远程内容限制器150、代理设备145和客户端设备125中)。对于相同的内容元素210A-N,在一个计算设备(例如,远程内容限制器150、代理设备145、或客户端设备125之一)处的元素散列器220的一个实例可以生成与另一计算设备处的元素散列器220的另一实例相同的元素标识符。以这种方式,元素散列器220可以生成单一元素标识符,以识别通过网络105发送到与其连接的、运行呈现限制器165的计算设备(例如,其他客户端设备125、代理设备145和远程内容限制器设备150)的相同的内容元素210A-N。通过具有用于相同内容元素210A-N的单一元素标识符,运行呈现限制器165的计算设备可以避免运行计算上更加昂贵的算法(例如,图像处理算法)以确定是否将内容限制策略应用于内容元素210A-N。
在一些实施方式中,元素散列器220所使用的散列函数可以对于呈现限制器165的本地实例(例如,在客户端设备125处)是唯一的。对于相同的内容元素210A-N,在一个计算设备(例如,远程内容限制器150、代理设备145、或客户端设备125之一)处的元素散列器220的一个实例可以生成与由在另一计算设备处运行的元素散列器220的另一实例生成的元素标识符不同的元素标识符。元素散列器220可以生成对于呈现限制器165的本地实例唯一的元素标识符。通过使用对于呈现限制器165的本地实例唯一的散列函数,元素散列器220可以增强数据安全性和加密、以及用户隐私。
在一些实施方式中,元素散列器220所使用的散列函数可以考虑与信息资源205或内容元素210A-N相对应的二进制序列的任何加密算法。客户端设备125、代理设备145或任何中间设备可以将加密算法应用于与信息资源205或内容元素210A-N相对应的二进制序列,从而更改二进制序列。在一些实施方式中,应用于二进制序列的加密算法可以包括有线等效保密(Wired Equivalent Privacy,WEP)和Wi-Fi保护接入(Wi-Fi Protected Access,WPA)、以及其他加密协议。由于加密算法,在一个计算设备处运行的元素散列器220可以生成与由在另一计算设备处运行的元素散列器220生成的元素标识符不同的元素标识符。为了绕过或抵消应用于二进制序列的加密算法的影响,元素散列器220可以使用一对一散列函数来为每个所识别的比特流生成元素标识符。以这种方式,尽管由元素散列器220生成的元素标识符对于呈现限制器165的本地实例可以是唯一的,但是由客户端设备125、代理设备145或任何其他中间设备应用的加密算法也可以产生唯一值。如此以来,在呈现限制器165的一个实例处由元素散列器220生成的元素标识符可以在其他设备处的呈现限制器165的其他实例中使用。
使用由元素散列器220生成的元素标识符,内容限制器225可以访问本地受限内容数据库240或远程受限内容数据库245以确定是否将内容限制策略应用于内容元素210A-N。本地受限内容数据库240可以通过呈现限制器165的实例(诸如客户端设备125或代理设备145)来维护,该呈现限制器165对于运行元素散列器220的计算设备是本地的。本地受限内容数据库240可以包括存储元素标识符和指定是要限制还是许可对应的元素标识符的许可指示符等的任何数据结构(例如,数组、堆、链表、二叉树、矩阵、表等)。在一些实施方式中,本地受限内容数据库240可以包括要被许可的元素标识符的第一列表(例如,白名单)和要被限制的元素标识符的第二列表(例如,黑名单)。远程受限内容数据库245可以由另一计算设备维护。在一些实施方式中,远程受限内容数据库245可以由与运行元素散列器220的计算设备不同的呈现限制器165的实例来维护。在一些实施方式中,可以将本地受限内容数据库240存储和维护为代理设备145或远程内容限制器设备150。远程受限内容数据库245可以包括存储元素标识符和指定是要限制还是许可对应的元素标识符的许可指示符的任何数据结构(例如,数组、堆、链表、二叉树、矩阵、表等)。在一些实施方式中,远程受限内容数据库245可以包括要被许可的元素标识符的第一列表和要被限制的元素标识符的第二列表。在一些实施方式中,呈现限制器165的本地实例可以维护本地受限内容数据库245(例如,黑名单)以存储被指定为要被限制的元素标识符。在一些实施方式中,呈现限制器165的本地实例可以维护单独的本地非受限内容数据库(例如,白名单)以存储被指定为要被许可的元素标识符。在一些实施方式中,呈现限制器165的远程实例可以维护远程受限内容数据库245(例如,黑名单)以存储被指定为要被限制的元素标识符。在一些实施方式中,呈现限制器165的远程实例可以维护单独的远程非受限内容数据库(例如,白名单)以存储被指定为要被允许的元素标识符。
内容限制器225可以最初访问本地受限内容数据库240。内容限制器225可以在本地受限内容数据库240中执行对元素标识符的搜索。在一些实施方式中,内容限制器225可以遍历本地受限内容数据库240以寻找元素标识符。在一些实施方式中,内容限制器225可以使用元素标识符作为对存储在本地受限内容数据库240中的数据结构的索引。
如果内容限制器225在本地受限内容数据库240中找到元素标识符,则内容限制器225可以识别对于元素标识符的许可指示符。内容限制器225可以使用许可指示符来确定是否将内容限制策略应用于与元素标识符相对应的内容元素210A-N。
另一方面,如果内容限制器225未在本地受限内容数据库240中找到元素标识符,则内容限制器225可以向远程受限内容数据库245发送对寻找元素标识符的请求。对寻找元素标识符的请求可以包括由元素散列器220生成的元素标识符以及其他数据。远程受限内容数据库245可以被维护或与远离呈现限制器165的本地实例的设备相关联。在一些实施方式中,在客户端设备125上运行的内容限制器225可以将请求发送到代理设备145或者维护远程受限内容数据库245的远程内容限制器设备150。
响应于从计算设备接收到请求,远程设备(例如,代理设备145或远程内容限制器设备150)可以使用请求中的元素标识符来访问远程受限内容数据库245。远程设备可以在远程受限内容数据库245中执行对元素标识符的搜索。在一些实施方式中,远程设备可以遍历远程受限内容数据库245以寻找元素标识符。在一些实施方式中,远程设备可以使用元素标识符作为对存储在远程受限内容数据库245中的数据结构的索引。
如果远程设备在远程受限内容数据库245中找到元素标识符,则远程设备可以识别对于元素标识符的许可指示符。响应于找到元素标识符,远程设备还可以向内容限制器225发送肯定响应。肯定响应可以指示元素标识符在远程受限内容数据库245上。肯定响应还可以包括如远程受限内容数据库245中指定的许可指示符。内容限制器225可以从与远程受限内容数据库245相关联的远程设备接收肯定响应。内容限制器225可以将从远程设备接收的元素标识符和许可指示符存储到本地受限内容数据库240上。基于许可指示符,内容限制器225可以确定是否将内容限制策略应用于与许可指示符相对应的内容元素210A-N。
如果远程设备未在远程受限内容数据库245中找到元素标识符,则远程设备还可以向内容限制器225发送否定响应。否定响应可以指示元素标识符不在远程受限内容数据库245上。内容限制器225可以从与远程受限内容数据库245相关联的远程设备接收否定响应。响应于从远程设备接收到否定响应,内容限制器225可以调用渲染限制器230来确定是否要根据基于渲染的限制扩展将内容限制策略应用于内容元素210A-N。
另外,如果远程设备未在远程受限内容数据库245中找到元素标识符,则远程设备可以根据基于渲染的限制扩展基于内容元素210A-N和信息资源205的渲染属性确定是否要修改内容元素210A-N。可以通过远程设备处的渲染限制器230的实例根据基于渲染的限制扩展来执行对是否要修改内容元素210A-N的确定。远程设备可以访问由应用160接收的内容元素210A-N和信息资源205的渲染属性。在一些实施方式中,远程设备可以向运行应用160的设备发送对渲染属性的请求。远程设备可以随后从设备接收信息资源205的内容元素210A-N的渲染属性。
通过根据基于渲染的限制扩展分析内容元素210A-N的渲染属性和信息资源205的渲染属性,远程设备可以确定是否将内容限制策略应用于内容元素210A-N。基于渲染的限制扩展可以指定将内容限制策略应用于具有某些渲染属性的内容元素210A-N。通常,根据基于渲染的限制扩展来分析内容元素210A-N的渲染属性和信息资源205的渲染属性可能在计算上比散列函数更复杂。如此以来,基于渲染的限制扩展可能消耗相对于散列函数的更多计算机资源和处理时间,导致远程设备的性能下降和滞后。为了部分地减轻计算机资源的消耗并在一定程度上减少处理时间,使用散列函数生成元素标识符和对渲染属性的分析可以被分叉(bifurcate)或以其他方式分配在多个设备和呈现限制器165的实例上。
根据基于渲染的限制扩展,远程设备可以将内容元素210A-N的渲染属性与选定的渲染属性进行比较,以确定是否将内容限制策略应用于内容元素210A-N。在一些实施方式中,远程设备可以将信息资源205上的内容元素210A-N的尺寸与预先选定的尺寸(例如,468×60像素(全横幅)、160×600像素(宽摩天大楼横幅)和720×300像素(隐性弹出式))进行比较。如果远程设备确定内容元素210A-N的尺寸与预先选定的尺寸之间的匹配,则远程设备可以确定将内容限制策略应用于内容元素210A-N。在一些实施方式中,远程设备可以将信息资源205上的内容元素210A-N的位置与预先选定的位置(例如,朝向信息资源205的顶部或沿着其侧面)进行比较。如果远程设备确定内容元素210A-N的位置与预先选定的位置之间的匹配,则远程设备可以确定将内容限制策略应用于内容元素210A-N。在一些实施方式中,远程设备可以识别内容元素210A-N的颜色值(例如,RGB值、字母数字标识符或HTML颜色代码)和信息资源205的颜色值。如果内容元素210A-N的颜色值和信息资源205的颜色值相差预定义的余量,则远程设备可以确定将内容限制策略应用于内容元素210A-N。如果这些都不匹配,则远程设备可以确定不将内容限制策略应用于内容元素210A-N。
远程设备还可以应用任何数量的图像识别算法和图像识别算法的任何组合,以根据基于渲染的限制扩展基于渲染属性确定是否要将内容限制策略应用于内容元素210A-N。内容元素210A-N可以包括图像或者可以包括图像的源地址。内容元素210A-N可以包括视频或者可以包括视频的源地址。在一些实施方式中,远程设备可以应用图像识别算法来确定内容元素210A-N的图像或视频是否包括受限视觉元素(例如,裸露、暴力、毒品、以及图像或视频中的其他不期望的元素)。图像识别算法可以包括光学字符识别、对象识别、边缘检测、特征检测(例如,仿射特征检测)和模式识别算法等。在一些实施方式中,远程设备可以使用光学字符识别算法从内容元素210A-N的图像中识别字符串。远程设备可以将所识别的字符串与预先选定的字符串(例如,“点击此处”、“购买”、“销售”、“XXX”和“$”等)进行比较。如果所识别的字符串与预先选定的字符串匹配,则远程设备可以确定将内容限制策略应用于内容元素210A-N。否则,远程设备可以确定不将内容限制策略应用于内容元素210A-N。
结合基于对渲染属性的分析确定是否要将内容限制策略应用于内容元素210A-N,远程设备可以将与内容元素210A-N相对应的元素标识符添加或插入到远程受限内容数据库245。如果远程设备确定要应用内容限制策略,则远程设备可以添加或插入指定与元素标识符相对应的内容元素210A-N要被限制的许可指示符。如果远程设备确定不应用内容限制策略,则远程设备可以将指示与元素标识符相对应的内容元素210A-N要被允许的许可指示符添加或插入到远程受限内容数据库245中。随后,远程设备可以将肯定响应发送到内容限制器225。肯定响应可以指示元素标识符在远程受限内容数据库245上。肯定响应还可以包括从远程受限内容数据库245中检索到的许可指示符。
在一些实施方式中,如果内容限制器225未在本地受限内容数据库240中找到元素标识符,则内容限制器225可以调用渲染限制器230。当被调用时,渲染限制器230可以分析内容元素210A-N以根据基于渲染的限制扩展确定是否将内容限制策略应用于内容元素210A-N。内容限制器225还可以调用渲染限制器230以响应于从与远程受限内容数据库245相关联的远程设备接收到对元素标识符的否定响应来分析内容元素210A-N。
通过根据基于渲染的限制扩展分析内容元素210A-N的渲染属性和信息资源205的渲染属性,渲染限制器230可以确定是否将内容限制策略应用于内容元素210A-N。基于渲染的限制扩展可以指定将内容限制策略应用于具有某些渲染属性的内容元素210A-N。
根据基于渲染的限制扩展,渲染限制器230可以将内容元素210A-N的渲染属性与选定的渲染属性进行比较,以确定是否将内容限制策略应用于内容元素210A-N。在一些实施方式中,渲染限制器230可以将信息资源205上的内容元素210A-N的尺寸与预先选定的尺寸(例如,468×60像素(全横幅)、160×600像素(宽摩天大楼横幅)和720×300像素(隐性弹出式))进行比较。如果渲染限制器230确定内容元素210A-N的尺寸与预先选定的尺寸之间的匹配,则渲染限制器230可以确定将内容限制策略应用于内容元素210A-N。在一些实施方式中,渲染限制器230可以将信息资源205上的内容元素210A-N的位置与预先选定的位置(例如,朝向信息资源205的顶部或沿着其侧面)进行比较。如果渲染限制器230确定内容元素210A-N的位置与预先选定的位置之间的匹配,则渲染限制器230可以确定将内容限制策略应用于内容元素210A-N。在一些实施方式中,渲染限制器230可以识别内容元素210A-N的颜色值(例如,RGB值、字母数字标识符或HTML颜色代码)和信息资源205的颜色值。如果内容元素210A-N的颜色值和信息资源205的颜色值相差预定义的余量,则渲染限制器230可以确定将内容限制策略应用于内容元素210A-N。如果这些都不匹配,则渲染限制器230可以确定不将内容限制策略应用于内容元素210A-N。
渲染限制器230还可以应用任意数量的图像识别算法和图像识别算法的任何组合,以根据基于渲染的限制扩展基于渲染属性确定是否将内容限制策略应用于内容元素210A-N。内容元素210A-N可以包括图像或者可以包括图像的源地址。内容元素210A-N可以包括视频或者可以包括视频的源地址。在一些实施方式中,渲染限制器230可以应用图像识别算法来确定内容元素210A-N的图像或视频是否包括受限视觉元素(例如,裸露、暴力、毒品、以及图像或视频中的其他不期望的元素)。图像识别算法可以包括光学字符识别、对象识别、边缘检测、特征检测(例如,仿射特征检测)和模式识别算法等。在一些实施方式中,渲染限制器230可以使用光学字符识别算法从内容元素210A-N的图像中识别字符串。渲染限制器230可以将所识别的字符串与预先选定的字符串(例如,“点击此处”、“购买”、“销售”、“XXX”和“$”等)进行比较。如果所识别的字符串与预先选定的字符串匹配,则渲染限制器230可以确定将内容限制策略应用于内容元素210A-N。否则,渲染限制器230可以确定不将内容限制策略应用于内容元素210A-N。
结合基于对渲染属性的分析确定是否要将内容限制策略应用于内容元素210A-N,渲染限制器230可以将与内容元素210A-N相对应的元素标识符添加或插入到本地受限内容数据库240。如果渲染限制器230确定要应用内容限制策略,则渲染限制器230可以添加或插入指定与元素标识符相对应的内容元素210A-N要被限制的许可指示符。如果渲染限制器230确定不应用内容限制策略,则渲染限制器230可以添加或插入指定与元素标识符相对应的内容元素210A-N要被许可的许可指示符。渲染限制器230或内容限制器225可以将元素标识符和许可指示符发送到连接到网络的其他计算设备(例如,其他客户端设备125、代理设备145和远程内容限制器设备150)。在一些实施方式中,渲染限制器230或内容限制器225可以经由网络105将元素标识符和许可指示符发送到第二客户端设备125,以用于存储在由第二客户端设备125维护的本地受限内容数据库处。在一些实施方式中,渲染限制器230或内容限制器225可以将元素标识符和许可指示符发送到代理设备145,以用于存储在由代理设备145维护的受限内容数据库处。在一些实施方式中,渲染限制器230或内容限制器225可以将元素标识符和许可指示符发送到远程内容限制器设备150,以用于存储在远程受限内容数据库250处。通过在连接到网络105的计算设备中共享元素标识符,运行呈现限制器165的计算设备可以避免对相同的内容元素210A-N重复应用计算上复杂的图像处理技术。因此,共享元素标识符可以提高运行呈现限制器165的计算设备的效率,从而释放用于其他功能的处理资源。
如果未在本地受限内容数据库240或远程受限内容数据库245中找到元素标识符,则内容限制器225可以通过应用160在内容元素210A-N在信息资源上的第一包含期间维护内容元素210A-N。内容元素210A-N的第一包含可以与内容元素210A-N给运行连接到网络105的呈现限制器165的任何设备的第一供应相对应。在一些实施方式中,内容限制器225可以在信息资源205的第一包含期间将内容元素210A-N的属性设置或维持为默认值。在内容元素210A-N在信息资源205上的第一包含之后,内容限制器225可以调用渲染限制器230。当被调用时,渲染限制器230可以使用本文描述的功能来分析内容元素210A-N以根据基于渲染的限制扩展确定是否要将内容限制策略应用于内容元素210A-N。如果渲染限制器230基于渲染属性确定要将内容限制策略应用于内容元素210A-N,则内容限制器225可以在内容元素210A-N在任何信息资源上的后续包含期间修改内容元素210A-N。以这种方式,可以在第一供应期间在运行应用160的内容限制器225处的信息资源205上呈现和渲染内容元素210A-N。基于对内容元素210A-N和信息资源205的渲染属性的分析,可以在内容元素210A-N的后续修改和给运行应用160的内容限制器225的后续供应中修改内容元素210A-N。
响应于在本地受限内容数据库240或远程受限内容数据库245中找到元素标识符,内容限制器225可以根据内容限制策略修改内容元素210A-N在信息资源205上的呈现。在内容限制策略数据库235处维护的内容限制策略可以指定内容限制器225执行任何数量的动作或动作的任何组合以修改内容元素210A-N的呈现。在一些实施方式中,如由内容限制策略指定的,内容限制器225可以禁用内容元素210A-N。在一些实施方式中,如由内容限制策略指定的,内容限制器225可以从信息资源205中删除或移除内容元素210A-N。在一些实施方式中,内容限制器225可以在信息资源205的标记中识别与内容元素210A-N相对应的代码段。内容限制器225可以删除、移除或以其他方式使得与内容元素210A-N相对应的代码段无效。在一些实施方式中,如由内容限制策略指定的,内容限制器225可以将内容元素210A-N的可见性属性从开启设置为关闭。将内容元素210A-N的可见性属性从开启设置为关闭可以使得应用160不在信息资源205上渲染、显示或以其他方式呈现内容元素210A-N。在一些实施方式中,如由内容限制策略指定的,内容限制器225可以从内容元素210A-N中删除任何重定向链接。重定向链接的交互或激活可以使得运行应用160的内容限制器225检索附加内容。在一些实施方式中,内容限制器225可以基于与内容元素210A-N相对应的代码段来确定内容元素210A-N是否包括重定向链接。
内容限制器225还可以响应于识别本地受限内容数据库240和远程受限内容数据库245上的元素标识符,修改与信息资源205上的内容元素210A-N相关联的数据的发送和接收,如由内容限制策略指定的。在一些实施方式中,内容限制器225可以更改来自运行应用160的计算设备的与内容元素210A-N相关联的数据分组的发送。内容元素210A-N可以包括指定运行应用160的计算设备将确认响应发送到日志服务器的代码段。确认响应可以表示对在运行应用160的计算设备处接收或呈现内容元素210A-N的确认。内容限制器225可以识别用于发送确认响应的代码段。在一些实施方式中,内容限制器225可以修改、移除或删除所识别的代码段以禁用确认响应的发送。在一些实施方式中,内容限制器225还可以许可确认响应的发送,并且可以随后修改、移除或删除所识别的代码段以禁用确认响应的发送。在一些实施方式中,内容限制器225可以更改来自另一计算设备(例如,数据处理系统110、内容提供方设备115和内容发布方设备120)的与内容元素210A-N相关联的数据分组的接收。在一些实施方式中,内容限制器225可以接收数据分组(例如,用于流视频的分段组块)。然后,内容限制器225可以从由应用160的处理中移除数据分组。
如果通过内容限制器225在本地受限内容数据库240中识别出元素标识符或通过远程设备在远程受限内容数据库245中识别出元素标识符,则内容限制器225可以在信息资源205上添加附加内容元素210A-N,以修改内容元素210A-N的呈现。内容限制器225可以识别内容元素210A-N的位置和尺寸。内容限制器225可以识别包括内容元素210A-N的信息资源205的视觉特性(例如,颜色值)。然后,内容限制器225可以生成具有内容元素210A-N的所识别的位置和尺寸以及信息资源205的视觉特性的附加内容元素,以遮挡内容元素210A-N。
现在参考图3,图3是描绘根据说明性实施方式的由系统许可或限制信息资源的内容元素以用于限制内容的流程的框图。如图3的流程300中所描绘的,信息资源205可以包括第一内容元素210A、第二内容元素210B和第三内容元素210C。信息资源205和每一个内容元素210A-C可以对应于二进制序列或比特流(以十六进制形式描绘)。第一内容元素210A可以对应于第一比特流305A(例如,“xA831”)。第二内容元素210B可以对应于第二比特流305B(例如,“xFC0A”)。第三内容元素210C可以对应于第三比特流305C(例如,“x4C9D”)。
在图2的背景下,元素散列器220可以使用散列函数310来使用比特流305A-N生成与内容元素210A-C之一相对应的元素标识符315A-C(也以十六进制形式描绘)。比特流305A-N可能已经由资源解析器215识别和获得。如图3中的流程300所描绘的,元素散列器220可以为第一比特流305A的第一内容元素210A生成元素标识符315A(“xC1A9”)。元素散列器220可以为第二比特流305B的第二内容元素210B生成第二元素标识符315B(“x8BF2”)。元素散列器220可以为第三比特流305C的第三内容元素210C生成第三元素标识符315C(“x3C70”)。
在图2的背景下仍然参考图3,内容限制器225可以使用元素标识符315A-C来确定是否将内容限制策略应用于内容元素210A-C中的任何一个。为此,内容限制器225可以在受限内容数据库(诸如本地受限内容数据库240或远程受限内容数据库245)中搜索元素标识符315A-C。受限内容数据库可以包括数据结构(诸如受限内容表315),用于通过许可指示符排列元素标识符。在存储在受限内容数据库处的受限内容表325上,内容限制器225可以识别第一元素标识符315A、第二元素标识符315B和第三元素标识符315C。对于第一元素标识符315A,内容限制器225可以验证许可指示符指定对应的第一内容元素205A将被限制。相反,对于第二元素标识符315B和第三元素标识符315C,许可指示符指定第二内容元素205B和第三内容元素205C两者都将被许可。
已经在受限内容数据库中找到与第一内容元素205A相对应的第一元素标识符315A,内容限制器225可以将内容限制策略应用于第一内容元素205A。如图3中所描绘的,内容限制器225可以从信息资源205中删除第一内容元素210A。内容限制器225还可以同时维护第二内容元素210B和第三内容元素210C。
现在参考图4,图4是描绘根据说明性实施方式的限制插入到信息资源中的内容的方法400的流程图。本文针对方法400描述的功能可以由如图1中所示的客户端设备125、代理设备145或远程内容限制器设备150、如图2中所示的系统200、或者如图10中所示的计算设备、或其任何组合来执行或以其他方式运行。简要概述,具有一个或多个处理器的计算设备可以识别包括在信息资源中的内容元素,对该内容元素应用内容限制策略以用于修改内容元素的呈现(框405)。计算设备可以识别与包括在信息资源中的内容元素相对应的比特流(框410)。计算设备可以对所识别的比特流进行散列以生成与内容元素相对应的元素标识符(框415)。计算设备可以使用元素标识符来访问受限内容数据库(框420)。响应于在受限内容数据库中找到元素标识符,计算设备可以根据内容限制策略修改信息资源上的内容元素的呈现(框425)。
更详细地,具有一个或多个处理器的计算设备可以识别包括在信息资源中的内容元素,对该内容元素应用内容限制策略以用于修改内容元素的呈现(框405)。计算设备可以识别包括在信息资源中的内容元素,对该内容元素应用内容限制策略以用于修改内容元素的呈现。内容限制策略可以被存储在内容限制策略数据库中并由呈现限制器维护。内容限制策略可以指定要进一步分析内容元素的哪些元素类型以及如何修改被识别为受限的内容元素。计算设备可以与应用接口以访问信息资源和包括在信息资源中的内容元素。
根据内容限制策略,资源解析器可以识别包括在信息资源中的内容元素的子集以供进一步分析。计算设备可以识别包括在信息资源中的每个内容元素的元素类型。元素类型可以包括正文、段落、分区、分段、内联框架、图像、画布、小应用程序、脚本、音频、视频、表格和列表等中的一个。元素类型可以对应于HTML标签(例如,对于内联框架的“<iframe>”)。在一些实施方式中,内容限制策略可以指定要进一步分析的元素类型(例如,内联框架、图像、小应用程序等)。如由内容限制策略指定的,计算设备可以识别与要进一步分析的元素类型匹配的内容元素的子集。以这种方式,呈现限制器可以减少将被处理的内容元素的数量,从而释放计算资源。
计算设备可以识别与包括在信息资源中的内容元素相对应的比特流(框410)。为了确定是否要将内容限制策略应用于内容元素,计算设备可以识别与包括在信息资源中的内容元素相对应的比特流。信息资源可以对应于二进制序列(例如,字节数组或字节流)。包括在信息资源中的每个内容元素可以对应于二进制序列的一部分。在一些实施方式中,计算设备可以与应用接口以访问与信息资源相对应的二进制序列。在一些实施方式中,计算设备可以与应用接口以访问与内容元素之一相对应的二进制序列的一部分。在一些实施方式中,如由内容限制策略指定的,计算设备可以与应用接口以访问与被识别为与要进一步分析的元素类型匹配的内容元素的子集相对应的二进制序列的一部分。在一些实施方式中,计算设备可以识别内容元素的比特流的子集部分(例如,比特流中的前N个比特或比特流中的每第五个比特等)。
计算设备可以对所识别的比特流进行散列以生成与内容元素相对应的元素标识符(框415)。在计算设备已经识别出比特流的情况下,计算设备可以对所识别的比特流进行散列以生成与内容元素相对应的元素标识符。在一些实施方式中,计算设备可以在所识别的比特流上使用散列函数来生成与内容元素相对应的元素标识符。散列函数可以包括针对内容元素识别的比特流的任何组合,诸如加密散列函数(例如,安全散列算法(SHA-1、SHA-2和SHA-3)、消息摘要算法(MD2、MD4、MD5和MD6)、校验和函数等)、循环冗余校验算法、散列表(例如,关联数组)、以及几何散列函数、或任何一对一散列函数等。散列函数可以被配置或选择以最小化散列冲突,使得识别两个不同内容元素的相同元素标识符的可能性降低。在一些实施方式中,计算设备可以对内容元素的比特流的子集部分进行散列。
在一些实施方式中,计算设备所使用的散列函数可以在呈现限制器的所有实例中是共同的。对于相同的内容元素,一个计算设备处的计算设备的一个实例可以生成与另一计算设备处的计算设备的另一实例相同的元素标识符。以这种方式,计算设备可以生成单一元素标识符,以识别通过网络发送到与其连接的计算设备的相同的内容元素。
在一些实施方式中,计算设备所使用的散列函数对于呈现限制器的本地实例可以是唯一的。对于相同的内容元素,一个计算设备处的计算设备的一个实例可以生成与由另一计算设备处运行的计算设备的另一实例生成的元素标识符不同的元素标识符。计算设备可以生成对于呈现限制器的本地实例唯一的元素标识符。通过使用对于呈现限制器的本地实例唯一的散列函数,计算设备可以增强数据安全性和加密、以及用户隐私。
在一些实施方式中,计算设备所使用的散列函数可以考虑与信息资源或内容元素相对应的二进制序列的任何加密算法。任何中间设备可以将加密算法应用于与信息资源或内容元素相对应的二进制序列,从而更改二进制序列。在一些实施方式中,应用于二进制序列的加密算法可以包括有线等效保密(WEP)和Wi-Fi保护接入(WPA)、以及其他加密协议。由于加密算法,在一个计算设备处运行的计算设备可以生成与由在另一计算设备处运行的计算设备生成的元素标识符不同的元素标识符。为了绕过或抵消应用于二进制序列的加密算法的影响,计算设备可以使用一对一散列函数来为每个所识别的比特流生成元素标识符。以这种方式,尽管由计算设备生成的元素标识符对于呈现限制器的本地实例可以是唯一的,但是由中间设备应用的加密算法可以产生唯一值。如此以来,在呈现限制器的一个实例处由计算设备生成的元素标识符可以在其他设备处的呈现限制器的其他实例中使用。
计算设备可以使用元素标识符来访问受限内容数据库(框420)。使用由计算设备生成的元素标识符,计算设备可以访问本地受限内容数据库或远程受限内容数据库以确定是否将内容限制策略应用于内容元素。本地受限内容数据库可以通过呈现限制器的实例来维护,该呈现限制器的实例对于运行计算设备的计算设备是本地的。本地受限内容数据库可以包括存储元素标识符和指定是否要限制或许可对应的元素标识符的许可指示符等的任何数据结构(例如,数组、堆、链表、二叉树、矩阵、表等)。远程受限内容数据库可以由另一计算设备维护。在一些实施方式中,远程受限内容数据库可以由与运行计算设备的计算设备不同的呈现限制器的实例来维护。在一些实施方式中,可以将本地受限内容数据库存储和维护为远程设备。远程受限内容数据库可以包括存储元素标识符和指定是否要限制或许可对应的元素标识符的许可指示符等的任何数据结构(例如,数组、堆、链表、二叉树、矩阵、表等)。
计算设备最初可以访问本地受限内容数据库。计算设备可以在本地受限内容数据库中执行对元素标识符的搜索。在一些实施方式中,计算设备可以遍历本地受限内容数据库以寻找元素标识符。在一些实施方式中,计算设备可以使用元素标识符作为对存储在本地受限内容数据库中的数据结构的索引。如果计算设备在本地受限内容数据库中找到元素标识符,则计算设备可以识别对于元素标识符的许可指示符。计算设备可以使用许可指示符来确定是否将内容限制策略应用于与元素标识符相对应的内容元素。
另一方面,如果计算设备未在本地受限内容数据库中找到元素标识符,则计算设备可以向远程受限内容数据库发送对寻找元素标识符的请求。对寻找元素标识符的请求可以包括由计算设备生成的元素标识符以及其他数据。远程受限内容数据库可以被维护或与远离呈现限制器的本地实例的设备相关联。在一些实施方式中,计算设备可以将请求发送到维护远程受限内容数据库的远程设备。
响应于从计算设备接收到请求,远程设备可以使用请求中的元素标识符来访问远程受限内容数据库。远程设备可以在远程受限内容数据库中执行对元素标识符的搜索。在一些实施方式中,远程设备可以遍历远程受限内容数据库以寻找元素标识符。在一些实施方式中,远程设备可以使用元素标识符作为对存储在远程受限内容数据库中的数据结构的索引。
如果远程设备在远程受限内容数据库中找到元素标识符,则远程设备可以识别对于元素标识符的许可指示符。响应于找到元素标识符,远程设备还可以向计算设备发送肯定响应。肯定响应可以指示元素标识符在远程受限内容数据库上。肯定响应还可以包括如远程受限内容数据库中指定的许可指示符。计算设备可以从与远程受限内容数据库相关联的远程设备接收肯定响应。计算设备可以将从远程设备接收的元素标识符和许可指示符存储到本地受限内容数据库上。基于许可指示符,计算设备可以确定是否将内容限制策略应用于与许可指示符相对应的内容元素。
如果远程设备未在远程受限内容数据库中找到元素标识符,则远程设备还可以向计算设备发送否定响应。否定响应可以指示元素标识符不在远程受限内容数据库上。计算设备可以从与远程受限内容数据库相关联的远程设备接收否定响应。响应于从远程设备接收到否定响应,计算设备可以调用计算设备来确定是否要根据基于渲染的限制扩展将内容限制策略应用于内容元素。
另外,如果远程设备未在远程受限内容数据库中找到元素标识符,则远程设备可以根据基于渲染的限制扩展基于内容元素和信息资源的渲染属性确定是否要修改内容元素。可以通过远程设备处的计算设备的实例根据基于渲染的限制扩展来执行对是否要修改内容元素的确定。远程设备可以访问由应用接收的内容元素和信息资源的渲染属性。在一些实施方式中,远程设备可以向运行应用的设备发送对渲染属性的请求。远程设备可以随后从设备接收信息资源的内容元素的渲染属性。
通过根据基于渲染的限制扩展分析内容元素的渲染属性和信息资源的渲染属性,远程设备可以确定是否将内容限制策略应用于内容元素。基于渲染的限制扩展可以指定将内容限制策略应用于具有某些渲染属性的内容元素。通常,根据基于渲染的限制扩展来分析内容元素的渲染属性和信息资源的渲染属性可能在计算上比散列函数更复杂。如此以来,基于渲染的限制扩展可能消耗相对于散列函数的更多计算机资源和处理时间,导致远程设备的性能下降和滞后。为了部分地减轻计算机资源的消耗并在一定程度上减少处理时间,使用散列函数生成元素标识符和对渲染属性的分析可以被分叉或以其他方式分配在多个设备和呈现限制器的实例中。
根据基于渲染的限制扩展,远程设备可以将内容元素的渲染属性与选定的渲染属性进行比较,以确定是否将内容限制策略应用于内容元素。在一些实施方式中,远程设备可以将信息资源上的内容元素的尺寸与预先选定的尺寸进行比较。如果远程设备确定内容元素的尺寸与预先选定的尺寸之间的匹配,则远程设备可以确定将内容限制策略应用于内容元素。在一些实施方式中,远程设备可以将信息资源上的内容元素的位置与预先选定的位置(例如,朝向信息资源的顶部或沿着其侧面)进行比较。如果远程设备确定内容元素的位置与预先选定的位置之间的匹配,则远程设备可以确定将内容限制策略应用于内容元素。在一些实施方式中,远程设备可以识别内容元素的颜色值(例如,RGB值、字母数字标识符或HTML颜色代码)和信息资源的颜色值。如果内容元素的颜色值和信息资源的颜色值相差预定义的余量,则远程设备可以确定将内容限制策略应用于内容元素。如果这些都不匹配,则远程设备可以确定不将内容限制策略应用于内容元素。
远程设备还可以应用任何数量的图像识别算法和图像识别算法的任何组合,以根据基于渲染的限制扩展基于渲染属性确定是否要将内容限制策略应用于内容元素。内容元素可以包括图像或者可以包括图像的源地址。内容元素可以包括视频或者可以包括视频的源地址。在一些实施方式中,远程设备可以应用图像识别算法来确定内容元素的图像或视频是否包括受限视觉元素。图像识别算法可以包括光学字符识别、对象识别、边缘检测、特征检测(例如,仿射特征检测)和模式识别算法等。在一些实施方式中,远程设备可以使用光学字符识别算法从内容元素的图像中识别出字符串。远程设备可以将所识别的字符串与预先选定的字符串进行比较。如果所识别的字符串与预先选定的字符串匹配,则远程设备可以确定将内容限制策略应用于内容元素。否则,远程设备可以确定不将内容限制策略应用于内容元素。
结合基于对渲染属性的分析确定是否要将内容限制策略应用于内容元素,远程设备可以将与内容元素相对应的元素标识符添加或插入到远程受限内容数据库。如果远程设备确定要应用内容限制策略,则远程设备可以添加或插入指定与元素标识符相对应的内容元素要被限制的许可指示符。如果远程设备确定不应用内容限制策略,则远程设备可以添加或插入指定与元素标识符相对应的内容元素要被许可的许可指示符。随后,远程设备可以向计算设备发送肯定响应。肯定响应可以指示元素标识符在远程受限内容数据库上。肯定响应还可以包括从远程受限内容数据库中检索到的许可指示符。
在一些实施方式中,如果计算设备未在本地受限内容数据库中找到元素标识符,则计算设备可以调用计算设备。当被调用时,计算设备可以分析内容元素以根据基于渲染的限制扩展确定是否要将内容限制策略应用于内容元素。计算设备还可以响应于从与远程受限内容数据库相关联的远程设备接收到对元素标识符的否定响应,调用计算设备来分析内容元素。
通过根据基于渲染的限制扩展分析内容元素的渲染属性和信息资源的渲染属性,计算设备可以确定是否将内容限制策略应用于内容元素。基于渲染的限制扩展可以指定将内容限制策略应用于具有某些渲染属性的内容元素。
根据基于渲染的限制扩展,计算设备可以将内容元素的渲染属性与选定的渲染属性进行比较,以确定是否将内容限制策略应用于内容元素。在一些实施方式中,计算设备可以将信息资源上的内容元素的尺寸与预先选定的尺寸进行比较。如果计算设备确定内容元素的尺寸与预先选定的尺寸之间的匹配,则计算设备可以确定将内容限制策略应用于内容元素。在一些实施方式中,计算设备可以将信息资源上的内容元素的位置与预先选定的位置(例如,朝向信息资源的顶部或沿着其侧面)进行比较。如果计算设备确定内容元素的位置与预先选定的位置之间的匹配,则计算设备可以确定将内容限制策略应用于内容元素。在一些实施方式中,计算设备可以识别内容元素的颜色值(例如,RGB值,字母数字标识符或HTML颜色代码)和信息资源的颜色值。如果内容元素的颜色值和信息资源的颜色值相差预定义的余量,则计算设备可以确定将内容限制策略应用于内容元素。如果这些都不匹配,则计算设备可以确定不将内容限制策略应用于内容元素。
计算设备还可以应用任何数量的图像识别算法和图像识别算法的任何组合,以根据基于渲染的限制扩展基于渲染属性确定是否要将内容限制策略应用于内容元素。内容元素可以包括图像或者可以包括图像的源地址。内容元素可以包括视频或者可以包括视频的源地址。在一些实施方式中,远程设备可以应用图像识别算法来确定内容元素的图像或视频是否包括受限视觉元素。图像识别算法可以包括光学字符识别、对象识别、边缘检测、特征检测(例如,仿射特征检测)和模式识别算法等。在一些实施方式中,计算设备可以使用光学字符识别算法从内容元素的图像中识别出字符串。计算设备可以将所识别的字符串与预先选定的字符串进行比较。如果所识别的字符串与预先选定的字符串匹配,则计算设备可以确定将内容限制策略应用于内容元素。否则,计算设备可以确定不将内容限制策略应用于内容元素。
结合基于对渲染属性的分析确定是否要将内容限制策略应用于内容元素,计算设备可以将与内容元素相对应的元素标识符添加或插入到本地受限内容数据库。如果计算设备确定要应用内容限制策略,则计算设备可以添加或插入指定与元素标识符相对应的内容元素要被限制的许可指示符。如果计算设备确定不应用内容限制策略,则计算设备可以添加或插入指示与元素标识符相对应的内容元素要被许可的许可指示符。
如果未在本地受限内容数据库或远程受限内容数据库中找到元素标识符,则计算设备可以通过应用在内容元素在信息资源上的第一包含期间维护内容元素。内容元素的第一包含可以与内容元素给运行连接到网络的呈现限制器的任何设备的第一供应相对应。在一些实施方式中,计算设备可以在信息资源的第一包含期间,将内容元素的属性设置或维护为默认值。在内容元素在信息资源上的第一包含之后,计算设备可以调用计算设备。当被调用时,计算设备分析内容元素以使用本文描述的功能根据基于渲染的限制扩展来确定是否要将内容限制策略应用于内容元素。如果计算设备基于渲染属性确定要将内容限制策略应用于内容元素,则计算设备可以在内容元素在任何信息资源上的后续包含期间修改内容元素。以这种方式,可以在第一供应期间在运行应用的计算设备处的信息资源上呈现和渲染内容元素。基于对内容元素和信息资源的渲染属性的分析,可以在内容元素的后续修改和给运行应用的计算设备的后续供应中修改内容元素。
响应于在受限内容数据库中找到元素标识符,计算设备可以根据内容限制策略修改信息资源上的内容元素的呈现(框425)。响应于在本地受限内容数据库或远程受限内容数据库中找到元素标识符,计算设备可以根据内容限制策略修改信息资源上的内容元素的呈现。在内容限制策略数据库处维护的内容限制策略可以指定计算设备执行任何数量的动作或动作的任何组合以修改内容元素的呈现。在一些实施方式中,如由内容限制策略指定的,计算设备可以禁用内容元素。在一些实施方式中,如由内容限制策略指定的,计算设备可以从信息资源中删除或移除内容元素。在一些实施方式中,计算设备可以在信息资源的标记中识别与内容元素相对应的代码段。计算设备可以删除、移除与内容元素相对应的代码段或以其他方式使得与内容元素相对应的代码段无效。在一些实施方式中,如由内容限制策略指定的,计算设备可以将内容元素的可见性属性从开启设置为关闭。将内容元素的可见性属性从开启设置为关闭可能使得应用不在信息资源上渲染、显示或以其他方式呈现内容元素。在一些实施方式中,如由内容限制策略指定的,计算设备可以从内容元素移除任何重定向链接。重定向链接的交互或激活可以使得运行应用的计算设备检索附加内容。在一些实施方式中,计算设备可以基于与内容元素相对应的代码段来确定内容元素是否包括重定向链接。
响应于找到元素标识符,如由内容限制策略指定的,计算设备还可以修改与信息资源上的内容元素相关联的数据的发送和接收。在一些实施方式中,计算设备可以更改来自运行应用的计算设备的与内容元素相关联的数据分组的发送。内容元素可以包括指定运行应用的计算设备向日志服务器发送确认响应的代码段。确认响应可以表示对在运行应用的计算设备处接收或呈现内容元素的确认。计算设备可以识别用于发送确认响应的代码段。在一些实施方式中,计算设备可以修改、移除或删除所识别的代码段以禁用确认响应的发送。在一些实施方式中,计算设备还可以许可确认响应的发送,并且可以随后修改、移除或删除所识别的代码段以禁用确认响应的发送。在一些实施方式中,计算设备可以更改来自另一计算设备(例如,数据处理系统、内容提供方设备和内容发布方设备)的与内容元素相关联的数据分组的接收。在一些实施方式中,计算设备可以接收数据分组(例如,用于流视频的分段组块)。然后,计算设备可以移除数据分组以免被应用处理。
如果在本地受限内容数据库或远程受限内容数据库中找到元素标识符,则计算设备可以在信息资源上添加附加内容元素以修改内容元素的呈现。计算设备可以识别内容元素的位置和尺寸。计算设备可以识别包括内容元素的信息资源的视觉特性(例如,颜色值)。然后,计算设备可以生成具有内容元素的所识别的位置和尺寸以及信息资源的视觉特性的附加内容元素,以遮挡内容元素。
图5是描绘根据说明性实施方式的限制插入到信息资源中的内容的方法500的流程图。本文针对方法500描述的功能可以由如图1中所示的客户端设备125、代理设备145或远程内容限制器设备150、如图2中所示的系统200、或者如图10中所示的计算设备、或其任何组合来执行或以其他方式运行。简要概述,客户端设备可以识别在信息资源上的内容元素(框503)。客户端设备可以确定内容元素是否是受限类型的内容元素(框506)。如果内容元素不是受限类型的内容元素,则客户端设备可以识别信息资源上的下一个内容元素(框569)。如果内容元素是受限类型的内容元素,则客户端设备可以识别与内容元素相对应的比特序列(框509)。客户端设备可以提取比特序列的子集以获得内容元素的比特流(框512)。客户端设备可以计算比特流的散列以生成元素标识符(框515)。客户端设备可以访问本地受限内容数据库以搜索元素标识符(框518)。客户端设备可以确定元素标识符是否在本地受限内容数据库中(框521)。如果元素标识符不在本地受限内容数据库中,则客户端设备可以向远程设备发送请求(框524)。
远程设备可以从客户端设备接收请求(框527)。远程设备可以访问远程受限内容数据库以搜索元素标识符(框530)。远程设备可以确定元素标识符是否在远程受限内容数据库中(框533)。如果元素标识符在远程受限内容数据库中,则远程设备可以向客户端设备发送指示符(框536)。如果元素标识符不在远程受限内容数据库中,则远程设备可以识别内容元素的渲染属性(框539)。远程设备可以基于所识别的渲染属性来确定是否要修改内容元素(框542)。如果被许可,远程设备可以在被许可的情况下将元素标识符添加到远程受限内容数据库中(框545)。如果被限制,则远程设备可以在被限制的情况下将元素标识符添加到远程受限内容数据库中(框548)。远程设备可以发送指示符(框551)。
客户端设备可以接收指示符并将元素标识符添加到本地受限内容数据库中(框554)。客户端设备可以确定元素标识符是被选定为被允许还是被限制(框557)。如果被允许,客户端设备可以维护信息资源上的内容元素(框560)。如果被限制,则客户端设备可以修改信息资源上的内容元素(框563)。然后,客户端设备可以识别信息资源上的下一个内容元素(框569)。方法500的功能可以重复任何次数。
C.限制插入信息资源中的内容的系统和方法
作为应用上的插件或作为与在客户端设备或代理设备(例如,路由器)上运行的应用分离的独立程序来操作的内容控制模块可以干扰内容元素插入到信息资源上或内容元素的呈现。这些内容控制模块可以采用各种技术组合来干扰信息资源上的内容元素。一种技术可以使用源地址来识别内容元素来自与信息资源的其余部分不同的源。如果内容元素的源地址与信息资源的源地址相同,则该技术可能被抵消。另一种技术可以使用图像处理技术来识别内容元素,以检测内容元素和底层信息资源之间的差异。然而,这些技术可能在计算上很昂贵,导致计算机性能的滞后和下降。又一技术可以通过将与内容元素相对应的比特流的散列值与存储在维护受限散列值列表的内容限制数据库中的散列值进行匹配来识别内容元素。
这些内容控制模块可能引发安全问题。这样的内容控制模块可以在未经认证的情况下改变最初由信息资源供给的组成内容元素。此外,这些模块可能使得内容元素和信息资源的行为偏离信息资源原始编程的方式。例如,内容控制模块可以改变内容元素之一中的链接(例如,超链接),可能使得客户端设备被重定向到恶意网站。而且,从人机交互(HCI)角度来看,对内容元素的这些改变和信息资源的行为的偏差可能干扰用户对信息资源和应用的体验。例如,如果内容控制模块从信息资源中移除内容元素之一,则用户无法查看所移除的内容元素或与所移除的内容元素交互,从而降低用户对原始编码的信息资源的体验。
在一些实施方式中,内容发布方可以在信息资源中包括指令,该指令可以使得客户端设备经由一个或多个链接从一个或多个内容服务器请求内容。这些内容服务器可以与托管内容发布方的内容的主机服务器不同。通过包括请求内容而不是在发送信息资源之前将内容直接插入信息资源的指令,内容发布方可以减少向客户端设备供给信息资源的等待时间以及减少网络流量。在客户端设备上运行的一些内容控制模块可以通过将到内容服务器的链接修改到其他或未知内容服务器或者通过防止任何请求被发送到任何内容服务器,来干扰客户端设备从一个或多个内容服务器发送对内容的请求的能力。作为结果,客户端设备可能无法访问或显示内容发布方期望包括在内容发布方的信息资源中的所有内容项。
为了规避内容控制模块的一些潜在危害,所提出的系统可以利用内容控制模块(例如,如在本文章节B中详述的呈现限制器165)的一些弱点。每个新内容元素可能导致内容控制模块重新计算散列值并使用图像处理算法重新处理内容元素以确定是否限制,导致计算能力的消耗和滞后。这也可能导致针对内容元素的对接收ping的确认延迟。如果针对内容元素对接收ping的确认被延迟,则服务器可以生成编辑版本并发送内容元素的编辑版本。服务器可以编辑文件名或改变内容元素的视觉属性。因此,与内容元素的编辑版本相对应的比特流的散列值可以与先前的散列值不同,从而触发客户端设备处的内容控制模块以重新运行图像处理算法。这可能降低在客户端设备处运行的内容控制模块的性能。通过降低在客户端设备处运行的内容控制模块的性能,可以约束内容控制模块的使用。禁止内容控制模块的使用可以准许内容提供方和内容发布方保持对如何在相应的客户端设备上向用户显示内容的控制。例如,这可以提供用户界面体验的改善的供应,或者可以确保满足关于如何显示内容的要求。
现在参考图6,图6是描绘根据说明性实施方式的用于部署针对干扰信息资源的完整性的脚本的对策的系统600的框图。系统600可以包括环境100的一些或所有设备、组件和模块,诸如网络105、包括内容请求模块130的数据处理系统110、资源组装器模块135、数据库140、内容提供方设备115、内容发布方设备120、客户端设备125、代理设备150和远程内容限制器设备155。
在系统600中,数据处理系统110还可以包括干扰检测器605、内容修改器610和数据库615。干扰检测器605和内容修改器610可以包括至少一个处理单元、服务器、虚拟服务器、电路、引擎、代办、器具或其他逻辑设备,诸如可编程逻辑阵列,其被配置为经由网络105与数据库140或数据库615以及与其他计算设备(例如,内容提供方设备115、内容发布方设备120、或客户端设备125)通信。干扰检测器605和内容修改器610可以包括或运行至少一个计算机程序或至少一个脚本。干扰检测器605和内容修改器610可以是单独的组件、单一组件、或数据处理系统110的一部分。干扰检测器605和内容修改器610可以包括软件和硬件的组合,诸如被配置为运行一个或多个脚本的一个或多个处理器。干扰检测器605和内容修改器610可以在选择和生成内容元素和信息资源时与内容请求模块130和资源组装器模块135接口,以提供给连接到网络105的设备。
数据处理系统110还可以包括一个或多个数据库615,以用于存储内容元素(例如,内容元素210A-N)和信息资源的属性。数据库615可以对于数据处理系统110是本地的。在一些实施方式中,数据库615可以对于数据处理系统110是远程的,但可以经由网络105与数据处理系统110通信。数据库615可以包括信息资源和要被包括在信息资源中的内容元素的属性等,以服务于客户端设备125,诸如由内容请求模块130和资源组装器模块135选择和生成的信息资源和内容元素。数据库615可以存储由内容请求模块130和资源组装器模块135或数据处理系统110的任何其他组件生成或修改的信息资源和内容元素。在一些实施方式中,数据库615可以与数据库140相同。
为了保持信息资源的完整性,干扰检测器605可以识别信息资源(例如,信息资源205)上的第一内容元素(例如,内容元素210A-N)。信息资源和第一内容元素可能先前已经被发送或提供给连接到网络105的客户端设备125。信息资源可以对应于二进制序列。第一内容可以对应于第一比特流。在客户端设备125、代理设备145或远程内容限制器设备155上运行的呈现限制器165(或任何其他内容控制模块)可能已经干扰了信息资源上的第一内容元素的呈现或包含。在一些实施方式中,呈现限制器165可能已经将内容限制策略应用于信息资源上的第一内容元素,如在章节B中详细描述的那样。
在一些实施方式中,干扰检测器605可以识别包括在信息资源中的内容元素的子集以供进一步分析。干扰检测器605识别包括在信息资源中的每个内容元素的元素类型。元素类型可以包括正文、段落、分区、分段、内联框架、图像、画布、小应用程序、脚本、音频、视频、表格和列表等中的一个。元素类型可以对应于HTML标签(例如,对于内联框架的“<iframe>”)。要进一步分析的元素类型可以包括最有可能由呈现限制器165修改的元素类型(例如,内联框架、音频、视频、图像等)。干扰检测器605可以识别与元素类型匹配的内容元素的子集。以这种方式,干扰检测器605可以将要处理的内容元素的数量减少到最有可能由呈现限制器165修改的内容元素的数量,从而释放用于数据处理系统110的计算资源。
在一些实施方式中,干扰检测器605可以识别与包括在信息资源中的第一内容元素相对应的比特流。信息资源可以对应于二进制序列(例如,字节数组或字节流)。包括在信息资源中的每个内容元素可以对应于二进制序列的一部分。在一些实施方式中,干扰检测器605可以访问与信息资源相对应的二进制序列。在一些实施方式中,干扰检测器605可以访问与内容元素之一相对应的二进制序列的一部分。在一些实施方式中,干扰检测器605可以访问与被识别为与要进一步分析的元素类型匹配的内容元素的子集相对应的二进制序列的一部分。在一些实施方式中,干扰检测器605可以为信息资源、内容元素和对应的二进制序列访问数据库615。
利用在信息资源上识别的内容元素,干扰检测器605可以确定对信息资源上的第一内容元素的渲染的任何干扰。对第一内容元素的渲染的干扰可以包括客户端设备125上以任何方式禁用、禁止或以其他方式修改内容元素的显示或呈现。干扰可能是由于呈现限制器165在客户端设备125、代理设备145或远程内容限制器设备150上的运行而产生的。干扰检测器605可以采用任何数量的技术或技术的任何组合来确定由呈现限制器165发生的这种干扰。
使用发送内容元素的时间和接收到任何确认响应的时间,干扰检测器605可以确定对信息资源上的内容元素的渲染的干扰。每个信息资源可以包括用于请求将内容插入信息资源的请求脚本。响应于接收到信息资源,请求脚本可以使得客户端设备125将对内容的请求发送到数据处理系统110。每个内容元素可以包括确认响应脚本。在接收到内容元素时,确认响应脚本可以使得运行应用160的客户端设备125向数据处理系统110或内容提供方设备115发送或传送回确认响应(例如,pingback)。发送内容元素的时间和接收对内容的请求或任何确认响应的时间可以被存储在数据库140或数据库615中。
将内容元素发送到客户端设备125的时间、从客户端设备125接收到对与内容元素相关联的内容的请求的时间、以及从客户端设备125接收到任何确认响应的时间中的任何不规则性可以指示客户端设备125处的呈现限制器165的运行。在客户端设备125上执行呈现限制器165的功能可能导致接收到任何确认响应的时间比没有呈现限制器165的情况更长。干扰检测器605可以在确定内容元素的渲染是否受到干扰时,比较与内容元素和信息资源的发送以及和内容元素相关联的任何确认响应的接收有关的各种时间。可以实时地或以指定的时间间隔执行比较。在一些实施方式中,第一内容元素的响应可以被绑定到内容发布方设备125,使得下一个信息资源可用,防止恶意客户端渲染器(例如,呈现限制器165)在传送响应之前等待任意时间量。作为结果,使用基于散列的方法的恶意渲染器可能与非基于散列的“强力”方法一样慢和低效,以避免干扰检测器605的检测。
在一些实施方式中,干扰检测器605可以根据没有接收到对内容的请求或者没有从客户端设备125接收到对第一内容元素的确认响应,确定对信息资源上的第一内容元素的渲染的干扰的发生。没有接收到对内容的请求或者没有从客户端设备125接收到对第一内容元素的确认响应可以指示呈现限制器165更改了第一内容元素或其上的信息资源的行为。为此,对于每个内容元素,干扰检测器605可以访问数据库615以确定信息资源是否被发送或提供给客户端设备125。干扰检测器605可以确定是否从客户端设备125接收到对与第一内容元素相关联的内容的请求。如果从客户端设备125接收到对内容的请求,则干扰检测器605可以分析接收到请求的时间以及其他因素,以确定第一内容元素的干扰。如果未从客户端设备125接收到对内容的请求,则干扰检测器605可以确定在客户端设备上对信息资源上的第一内容元素的渲染的干扰的发生。对于每个内容元素,干扰检测器605还可以访问数据库615以确定是否从客户端设备125接收到与第一内容元素相关联的确认响应。如果从客户端设备125接收到确认响应,则干扰检测器605可以分析确认响应的时间以及其他因素,以确定第一内容元素的干扰。如果未从客户端设备125接收到确认响应,则干扰检测器605可以确定在客户端设备上对信息资源上的第一内容元素的渲染的干扰的发生。
在一些实施方式中,干扰检测器605可以比较在发送第一内容元素到客户端设备125的时间与从客户端设备125接收到对第一内容元素的确认响应的时间之间经过的时间,以确定干扰的发生。干扰检测器605访问数据库140或数据库615以得到发送的时间和接收到确认响应的时间。干扰检测器605可以识别发送第一内容元素到客户端设备125的时间。发送第一内容元素的时间可以对应于数据处理系统110或内容提供方设备115发送或者以其他方式提供第一内容元素给客户端设备125的时间。干扰检测器605可以识别接收到确认响应的时间。接收到确认响应的时间可以对应于处理第一内容元素的客户端设备125将确认响应发送回数据处理系统110或内容提供方设备115的时间。干扰检测器605可以计算在发送第一内容元素的时间和接收到确认响应的时间之间经过的时间。干扰检测器605可以将所计算的经过时间与预定阈值(例如,微秒到毫秒范围)进行比较。如果干扰检测器605确定所计算的经过时间大于或等于预定阈值,则干扰检测器605可以确定对信息资源上的第一内容元素的渲染的干扰的发生。如果干扰检测器605确定所计算的经过时间小于预定阈值,则干扰检测器605可以确定没有对信息资源上的第一内容元素的渲染的干扰。
在一些实施方式中,干扰检测器605可以比较在发送第一内容元素到多个客户端设备125的时间和从客户端设备接收到确认响应的时间之间经过的平均时间,以确定干扰的发生。干扰检测器605访问数据库140或数据库615以得到对于每个客户端设备125的发送的时间和接收到确认响应的时间。干扰检测器605可以计算在多个客户端上发送第一内容元素的时间和接收到确认响应的时间之间经过的平均时间。干扰检测器605可以将经过的平均时间与预定阈值(例如,微秒到毫秒范围)进行比较。如果干扰检测器605确定经过的平均时间大于或等于预定阈值,则干扰检测器605可以确定在多个客户端设备125上发生了对信息资源上的第一内容元素的渲染的干扰。如果干扰检测器605确定经过的平均时间小于预定阈值,则干扰检测器605可以确定在多个客户端设备125上没有发生对信息资源上的第一内容元素的渲染的干扰。
在一些实施方式中,干扰检测器605可以将第一内容元素的第一发送和第二发送之间经过的第一时间与对第一内容元素的确认响应的第一接收和第二接收之间经过的第二时间进行比较。经过的第一时间和经过的第二时间的差值可以指示呈现限制器165可能妨碍将第一内容元素渲染或插入到信息资源上。在第一内容元素的第一接收时,呈现限制器165可能已经使用了基于渲染的限制策略(例如,图像处理技术)来分析第一内容元素以确定是否将内容限制策略应用于内容元素。随后,呈现限制器165可能已经使用了散列函数来识别第一内容元素是否对应于受限内容数据库(例如,本地受限内容数据库240或远程受限内容数据库245)上的元素标识符。图像处理算法的性能可能比计算散列值消耗更多时间量。
为了识别发送第一内容元素与接收到确认响应的时间之间的间隔的任何差异,干扰检测器605可以识别发送第一内容元素到客户端设备125的第一时间。干扰检测器605可以识别从客户端设备125接收到对第一内容元素的第一确认响应的第一时间。干扰检测器605可以计算在发送第一内容元素到客户端设备125的第一时间与接收到对第一内容元素的第一确认响应的第一时间之间经过的第一时间。干扰检测器605可以识别发送第一内容元素到客户端设备125的第二时间。干扰检测器605可以识别从客户端设备125接收到对第一内容元素的第二确认响应的第二时间。干扰检测器605可以计算在发送第一内容元素到客户端设备125的第二时间与从客户端设备125接收到对第一内容元素的第二确认响应的第二时间之间经过的第二时间。在一些实施方式中,可以使用在多个客户端设备125上发送第一内容元素和接收到确认响应的时间来计算经过的第一时间和经过的第二时间。干扰检测器605可以计算经过的第一时间和经过的第二时间之间的差值。干扰检测器605可以将差值与预定阈值进行比较。如果干扰检测器605确定差值大于或等于预定阈值,则干扰检测器605可以确定发生了对信息资源上的第一内容元素的渲染的干扰。如果干扰检测器605确定差值小于预定阈值,则干扰检测器605可以确定没有发生对信息上的第一内容元素的渲染的干扰。
在一些实施方式中,干扰检测器605可以将接收到对第一内容元素的请求的预期时间与接收到对第一内容元素的请求的实际时间进行比较,以确定对第一内容元素的渲染的干扰。在客户端设备125上运行的呈现限制器165可能已经更改了内容元素或其上的信息资源的行为。因此,可以使得客户端设备125在比没有呈现限制器165的情况更晚的时间处接收信息资源之后发送对第一内容元素的请求。考虑到行为的更改,干扰检测器605可以访问数据库615以识别从客户端设备125接收到对用于将第一内容元素插入到信息资源上的内容的请求的实际时间。干扰检测器605还可以识别在发送信息资源到客户端设备125与从客户端设备125接收到对内容的请求之间经过的实际时间。干扰检测器605可以使用任意数量的因素确定或计算从客户端设备125接收到对与内容元素相关联的内容的请求的预期时间。这些因素可以包括网络105的网络带宽、网络105的网络等待时间、客户端设备125的设备类型以及客户端设备125的设备配置参数等。干扰检测器605还可以确定或计算在发送信息资源到客户端设备125与从客户端设备125接收到对内容的请求之间经过的预期时间。干扰检测器605可以比较接收到对内容的请求的预期时间和实际时间。在一些实施方式中,干扰检测器605可以计算接收到对内容的请求的预期时间和实际时间之间的差值。如果干扰检测器605确定差值大于或等于预定阈值,则干扰检测器605可以确定发生了对信息资源上的第一内容元素的渲染的干扰。如果干扰检测器605确定差值小于预定阈值,则干扰检测器605可以确定没有发生对信息上的第一内容元素的渲染的干扰。
在一些实施方式中,干扰检测器605可以将接收到对第一内容元素的确认响应的预期时间与接收到对第一内容元素的确认响应的实际时间进行比较,以确定对第一内容元素的渲染的干扰。在客户端设备125上运行的呈现限制器165可能已经更改了内容元素或其上的信息资源的行为。因此,可以使得客户端设备125在比没有呈现限制器165的情况更晚的时间处接收内容元素之后发送对第一内容元素的确认响应。考虑到行为的更改,干扰检测器605可以访问数据库615以识别从客户端设备125接收到对第一内容元素的确认响应的实际时间。干扰检测器605还可以识别在发送信息资源到客户端设备125与从客户端设备125接收到确认响应之间经过的实际时间。干扰检测器605可以使用任何数量的因素来确定或计算从客户端设备125接收到确认响应的预期时间。这些因素可以包括网络105的网络带宽、网络105的网络等待时间、客户端设备125的设备类型以及客户端设备125的设备配置参数等。干扰检测器605还可以确定或计算在发送信息资源到客户端设备125和从客户端设备125接收到确认响应之间经过的预期时间。干扰检测器605可以比较接收到对第一内容元素的确认响应的预期时间和实际时间。在一些实施方式中,干扰检测器605可以计算接收到对第一内容元素的确认响应的预期时间和实际时间之间的差值。如果干扰检测器605确定差值大于或等于预定阈值,则干扰检测器605可以确定发生了对信息资源上的第一内容元素的渲染的干扰。如果干扰检测器605确定差值小于预定阈值,则干扰检测器605可以确定没有发生对信息上的第一内容元素的渲染的干扰。
在一些实施方式中,干扰检测器605可以识别相对于来自客户端设备125的子集的第一内容元素的行为差异,以确定对信息资源上的第一内容元素的干扰。客户端设备125的第一子集可以运行呈现限制器165或者可能以其他方式在处理信息资源及其上的内容元素时受呈现限制器165影响。另一方面,客户端设备125的第二子集可以不在其上运行呈现限制器165。如此以来,客户端设备125的第一子集在处理和分析内容元素时可以消耗与客户端设备125的第二子集不同的时间量。考虑到行为的差异,对于每个客户端设备125,干扰检测器605可以识别发送第一内容元素的时间、接收到对内容的请求的时间、以及接收到确认响应的时间。使用所识别的值作为参数,干扰检测器605可以应用聚类算法(例如,k-最近邻居算法、期望最大化等)来识别客户端设备125的子集。对于每个子集,干扰检测器605可以计算发送第一内容元素的时间、接收到对内容的请求的时间和接收到确认响应的时间的均值。干扰检测器605可以计算使用聚类算法识别的客户端设备125的子集上的均值的差值。干扰检测器605可以将差值与预定余量进行比较。如果干扰检测器605确定差值大于或等于预定余量,则干扰检测器605可以确定发生了对信息资源上的第一内容元素的渲染的干扰。如果干扰检测器605确定差值小于预定余量,则干扰检测器605可以确定没有发生对信息上的第一内容元素的渲染的干扰。
响应于检测到对信息资源上的第一内容元素的渲染的干扰,内容修改器610可以基于第一内容元素生成用于后续信息资源的第二内容元素。第二内容元素可以对应于与第一比特流不同的第二比特流。当呈现限制器165计算比特流的散列值以生成每个内容元素的元素标识符时,与第一比特流不同的第二比特流可以使得呈现限制器165重新运行基于渲染的限制策略(例如,使用图像处理算法)来分析第二内容元素。重复应用基于渲染的限制策略来确定是否将内容限制策略应用于具有不同比特流的各种内容元素可能降低运行呈现限制器165的设备的性能。为此,内容修改器610可以修改第一内容元素以根据内容修改策略使用任何数量的技术和技术的任何组合来生成具有与第一比特流不同的第二比特流的第二元素。
由内容修改器610生成的第二内容元素可以视觉上看起来与第一内容元素有差异,但是传达相同的信息(例如,具有不同背景颜色的相同文本或具有不同边界宽度的相同图像),这导致从第一比特流到第二比特流的改变。在一些实施方式中,内容修改器610可以修改第一内容元素的视觉特性(例如,字体、字体大小、背景颜色、边界宽度、尺寸、信息资源上的位置等)以生成第二内容元素。对视觉特性的修改可能导致从第一比特流到第二比特流的改变。内容修改器610可以识别来自数据库615的第一内容元素的视觉特性。内容修改器610可以根据内容修改策略将第一内容元素的视觉特性设置为与默认值不同的值。内容修改策略可以基于默认值指定要设置视觉特性的哪些值(例如,将背景颜色从浅绿色改变为浅蓝色)。
由内容修改器610生成的第二内容元素可以在视觉上看起来与第一内容元素类似,传达相同的信息但具有不同的功能行为,以引起从第一比特流到第二比特流的改变。在一些实施方式中,内容修改器610可以修改第一内容元素的文件路径名以生成第二内容元素。文件路径名可以对应于第一内容元素的源地址。文件路径名可以包括协议(例如,http、https、ftp等)、主机名(例如,www.example.com)和文件名(例如,/samplescontent.html)。内容修改器610可以从文件路径名中识别协议、主机名和文件名。在一些实施方式中,内容修改器610可以修改主机名和文件名之一以生成第二内容元素。内容修改器610可以用修改后的文件路径名再现或重新生成第一内容元素以创建第二内容元素。在一些实施方式中,内容修改器610可以修改第一内容元素的重定向链接以生成第二内容元素。重定向链接可以包括第一内容元素中包括的源地址,并且可以被配置为使得在客户端设备125上运行的应用160检索与源地址相对应的内容。内容修改器610可以识别第一内容元素的重定向链接。内容修改器610可以用修改后的重定向链接再现或重新生成第一内容元素以创建第二内容元素。
由内容修改器610生成的第二内容元素可以对应于与第一内容元素的代码或标记不同的代码或标记,这导致从第一比特流到第二比特流的改变。内容修改器610可以修改与第一内容元素或与第一内容元素相关联的信息资源相对应的代码段以生成第二内容元素。代码段可以包括与第一内容元素相关联的一个或多个脚本。内容修改器610可以用对第一内容元素的修改来再现或重新生成代码段以创建第二内容元素。
在一些实施方式中,内容修改器610可以识别来自第一内容元素的代码段的确认响应代码。内容修改器610可以修改来自第一内容元素的代码段的确认响应代码以生成第二内容元素。确认响应代码一旦被客户端设备125接收并由在其上运行的应用160处理,就可以使得客户端设备125向数据处理系统110或内容提供方设备115发送确认响应(例如,pingback)。
在一些实施方式中,内容修改器610可以识别来自信息资源的代码段的内容请求代码。内容修改器610可以修改来自信息资源的代码段的内容请求代码以生成第二内容元素。内容请求代码一旦被客户端设备125接收并由在其上运行的应用160处理,就可以使得客户端设备125向数据处理系统110或内容提供方设备115发送对内容的请求以将内容元素插入到信息资源中。
在一些实施方式中,内容修改器610可以将附属代码添加、插入或附加到用于第一内容元素的代码段中以生成第二内容元素。附属代码可以是非功能代码,其不改变或更改第二内容元素相对于第一内容元素的行为。附属代码可以导致从第一比特流到第二比特流的改变。
为了验证事实上比特流是否已经被更改,内容修改器610可以确定第二内容元素的第二比特流是否不同于第一内容元素的第一比特流。内容修改器610可以识别与第一内容元素相对应的第一比特流。内容修改器610可以识别与第二内容元素相对应的第二比特流。内容修改器610可以识别或确定第一比特流和第二比特流之间不同的比特数。内容修改器610可以将不同的比特数与阈值数量进行比较。如果内容修改器610确定不同的比特数大于或等于阈值数量,则内容修改器610可以许可将第二内容元素发送或提供给客户端设备125。如果内容修改器610确定不同的比特数小于阈值数量,则内容修改器610可以限制将第二内容元素发送或提供给客户端设备125。内容修改器610还可以重新运行对第一内容元素的修改以生成另一内容元素。
在一些实施方式中,内容修改器610可以识别在第一比特流和第二比特流之间不同的比特分布。内容修改器610可以将不同的比特分布与预定阈值进行比较。如果内容修改器610确定不同的比特分布大于或等于预定阈值,则内容修改器610可以许可将第二内容元素发送或提供给客户端设备125。如果内容修改器610确定不同的比特分布小于预定阈值,则内容修改器610可以限制用于向客户端设备125提供或发送第二内容元素。内容修改器610还可以重新运行对第一内容元素的修改以生成另一内容元素。
在生成第二内容元素的情况下,内容修改器610可以将包括第二内容元素的后续信息资源发送到客户端设备125。在一些实施方式中,数据处理系统110可以从客户端设备125接收对信息资源的请求。响应于接收到请求,数据处理系统110可以发送后续信息资源。在一些实施方式中,数据处理系统110可以从客户端设备125接收对用于插入到信息资源中的内容的请求。响应于对内容的请求,内容修改器610可以向客户端设备125发送包括在后续信息中的第二内容元素。在第二内容元素对应于与第一比特流不同的第二比特流的情况下,客户端设备125对第二内容元素的接收可以使得在客户端设备125上运行的呈现限制器165应用基于渲染的限制策略。
现在参考图7,图7是描绘根据说明性实施方式的由系统修改信息资源的内容元素以用于部署针对干扰信息资源的完整性的脚本的对策的流程700的框图。如图7的流程700中所描绘的,信息资源205可以包括第一内容元素210A、第二内容元素210B和第三内容元素210C。第一内容元素210A、第二内容元素210B和第三内容元素210C中的每一个可以对应于二进制序列或比特流(以十六进制形式描绘)。第一内容元素210A可以对应于比特流705(例如,“xA86D”)。
在图6的背景下,呈现限制器165可能已经将内容限制策略应用于第一内容元素210A,从而干扰在客户端设备125处信息资源205上的内容元素210A的渲染。使用本文描述的技术,干扰检测器605可以检测对第一内容元素210A的渲染的干扰。在已经检测到对第一内容元素210A的干扰的情况下,内容修改器610可以修改第一内容元素210A以生成不同版本内容元素210A’。对内容元素210A的修改可能导致比特流705的改变。与内容元素210A相对应的比特流705(“xA86D”)可以被改变为与修改后的内容元素210A’相对应的另一比特流705’(“xA863”)。对内容元素210A的比特流705的改变可以使得在客户端设备125上运行的呈现限制器165重新运行基于渲染的限制策略(例如,图像处理算法)。这继而可能导致降低客户端设备125和呈现限制器165的性能。
现在参考图8,图8是描绘根据说明性实施方式的针对干扰信息资源的完整性的脚本的对策的方法800的流程图。本文针对方法800描述的功能可以由如图1中所示的系统100、如图6中所示的系统600和如图10中所示的计算设备或其任何组合来执行或以其他方式运行。简要概述,数据处理系统可以识别先前发送到客户端设备的信息资源上的第一内容元素(框805)。第一内容元素可以具有第一比特流。数据处理系统可以确定对信息资源上的第一内容元素的渲染的干扰(框810)。响应于确定对信息资源上的第一内容元素的渲染的干扰,数据处理系统可以基于第一内容元素生成用于后续信息资源的第二内容元素(框815)。第二内容元素可以具有与第一比特流不同的第二比特流。数据处理系统可以向客户端设备发送包括第二内容元素的后续信息资源(框820)。第二内容元素的接收可以使得在客户端设备上运行的内容限制脚本响应于与第一比特流不同的第二比特流来应用基于渲染的限制策略。
更详细地,数据处理系统可以识别先前发送到客户端设备的信息资源上的第一内容元素(框805)。第一内容元素可以具有第一比特流。为了保持信息资源的完整性,数据处理系统可以识别信息资源上的第一内容元素。信息资源和第一内容元素可能先前已经被发送或提供给连接到网络的客户端设备。信息资源可以对应于二进制序列。第一内容可以对应于第一比特流。在客户端设备、代理设备或远程内容限制器设备上运行的呈现限制器(或任何其他内容控制模块)可能已经干扰了第一内容元素在信息资源上的呈现或包含。在一些实施方式中,呈现限制器可能已经将内容限制策略应用于信息资源上的第一内容元素,如本文章节B中详述的。
在一些实施方式中,数据处理系统可以识别包括在信息资源中的内容元素的子集以供进一步分析。数据处理系统识别包括在信息资源中的每个内容元素的元素类型。元素类型可以包括正文、段落、分区、分段、内联框架、图像、画布、小应用程序、脚本、音频、视频、表格和列表等中的一个。元素类型可以对应于HTML标签(例如,对于内联框架的“<iframe>”)。要进一步分析的元素类型可以包括最有可能由呈现限制器修改的元素类型(例如,内联框架、音频、视频、图像等)。数据处理系统可以识别与元素类型匹配的内容元素的子集。以这种方式,数据处理系统可以将要处理的内容元素的数量减少到最有可能要由呈现限制器修改的内容元素的数量,从而释放用于数据处理系统的计算资源。
在一些实施方式中,数据处理系统可以识别与包括在信息资源中的第一内容元素相对应的比特流。信息资源可以对应于二进制序列(例如,字节数组或字节流)。包括在信息资源中的每个内容元素可以对应于二进制序列的一部分。在一些实施方式中,数据处理系统可以访问与信息资源相对应的二进制序列。在一些实施方式中,数据处理系统可以访问与内容元素之一相对应的二进制序列的一部分。在一些实施方式中,数据处理系统可以访问与被识别为与要进一步分析的元素类型匹配的内容元素的子集相对应的二进制序列的一部分。在一些实施方式中,数据处理系统可以为信息资源和内容元素、以及对应的二进制序列访问数据库。
数据处理系统可以确定对信息资源上的第一内容元素的渲染的干扰(框810)。利用在信息资源上识别的内容元素,数据处理系统可以确定对信息资源上的第一内容元素的渲染的干扰。对第一内容元素的渲染的干扰可以包括在客户端设备上以任何方式禁用、禁止或以其他方式修改内容元素的显示或呈现。干扰可能是由于呈现限制器在客户端设备、代理设备或远程内容限制器设备150上的运行而产生的。数据处理系统可以采用任何数量的技术或技术的任何组合来确定由呈现限制器发生的这种干扰。
使用发送内容元素的时间和接收到任何确认响应的时间,数据处理系统可以确定对信息资源上的内容元素的渲染的干扰。每个信息资源可以包括用于请求将内容插入到信息资源中的请求脚本。响应于接收到信息资源,请求脚本可以使得客户端设备将对内容的请求发送到数据处理系统。每个内容元素可以包括确认响应脚本。在接收到内容元素时,确认响应脚本可以使得运行应用160的客户端设备向数据处理系统或内容提供方设备发送或传送回确认响应(例如,pingback)。发送内容元素的时间和接收到对内容的请求或任何确认响应的时间可以被存储在数据库中。
将内容元素发送到客户端设备的时间、从客户端设备接收到对与内容元素相关联的内容的请求的时间、以及从客户端设备接收到任何确认响应的时间中的任何不规则性可以指示客户端设备处的呈现限制器的运行。在客户端设备上执行呈现限制器的功能可能导致接收到任何确认响应的时间比没有呈现限制器的情况更长。数据处理系统可以在确定内容元素的渲染是否受到干扰时,比较与内容元素和信息资源的发送和与内容元素相关联的任何确认响应的接收有关的各种时间。可以实时地或以指定的时间间隔执行比较。
在一些实施方式中,数据处理系统可以根据没有接收到对内容的请求或者没有从客户端设备接收到对第一内容元素的确认响应,确定对信息资源上的第一内容元素的渲染的干扰的发生。没有接收到对内容的请求或者没有从客户端设备接收到对第一内容元素的确认响应可以指示呈现限制器更改了第一内容元素或其上的信息资源的行为。为此,对于每个内容元素,数据处理系统可以访问数据库以确定信息资源是否被发送或提供给客户端设备。数据处理系统可以确定是否从客户端设备接收到对与第一内容元素相关联的内容的请求。如果从客户端设备接收到对内容的请求,则数据处理系统可以分析接收到请求的时间以及其他因素,以确定第一内容元素的干扰。如果未从客户端设备接收到对内容的请求,则数据处理系统可以确定在客户端设备上对信息资源上的第一内容元素的渲染的干扰的发生。对于每个内容元素,数据处理系统还可以访问数据库以确定是否从客户端设备接收到与第一内容元素相关联的确认响应。如果从客户端设备接收到确认响应,则数据处理系统可以分析确认响应的时间以及其他因素,以确定第一内容元素的干扰。如果未从客户端设备接收到确认响应,则数据处理系统可以确定在客户端设备上对信息资源上的第一内容元素的渲染的干扰的发生。
在一些实施方式中,数据处理系统可以比较在发送第一内容元素到客户端设备的时间与从客户端设备接收到对第一内容元素的确认响应的时间之间经过的时间,以确定干扰的发生。数据处理系统访问数据库以得到发送的时间和接收到确认响应的时间。数据处理系统可以识别发送第一内容元素到客户端设备的时间。发送第一内容元素的时间可以对应于数据处理系统或内容提供方设备发送或者以其他方式提供第一内容元素给客户端设备的时间。数据处理系统可以识别接收到确认响应的时间。接收到确认响应的时间可以对应于处理第一内容元素的客户端设备将确认响应发送回数据处理系统或内容提供方设备的时间。数据处理系统可以计算在发送第一内容元素的时间和接收到确认响应的时间之间经过的时间。数据处理系统可以将所计算的经过时间与预定阈值(例如,微秒到毫秒范围)进行比较。如果数据处理系统确定所计算的经过时间大于或等于预定阈值,则数据处理系统可以确定出现了对信息资源上的第一内容元素的渲染的干扰。如果数据处理系统确定所计算的经过时间小于预定阈值,则数据处理系统可以确定没有出现对信息资源上的第一内容元素的渲染的干扰。
在一些实施方式中,数据处理系统可以比较在发送第一内容元素到多个客户端设备的时间和从客户端设备接收到确认响应的时间之间经过的平均时间,以确定干扰的发生。数据处理系统访问数据库以得到对于每个客户端设备的发送的时间和接收到确认响应的时间。数据处理系统可以计算在多个客户端上发送第一内容元素的时间和接收到确认响应的时间之间经过的平均时间。数据处理系统可以将经过的平均时间与预定阈值(例如,微秒到毫秒范围)进行比较。如果数据处理系统确定经过的平均时间大于或等于预定阈值,则数据处理系统可以确定在多个客户端设备上出现了对信息资源上的第一内容元素的渲染的干扰。如果数据处理系统确定经过的平均时间小于预定阈值,则数据处理系统可以确定在多个客户端设备上没有出现对信息资源上的第一内容元素的渲染的干扰。
在一些实施方式中,数据处理系统可以将第一内容元素的第一发送和第二发送之间经过的第一时间与对第一内容元素的确认响应的第一接收和第二接收之间经过的第二时间进行比较。经过的第一时间和经过的第二时间的差值可以指示呈现限制器可能妨碍将第一内容元素渲染或插入到信息资源上。在第一内容元素的第一接收时,呈现限制器可能已经使用了基于渲染的限制策略(例如,图像处理技术)来分析第一内容元素以确定是否将内容限制策略应用于内容元素。随后,呈现限制器可能已经使用了散列函数来识别第一内容元素是否对应于受限内容数据库上的元素标识符。图像处理算法的性能可能比计算散列值消耗更多时间量。
为了识别发送第一内容元素与接收到确认响应的时间之间的间隔的任何差异,数据处理系统可以识别发送第一内容元素到客户端设备的第一时间。数据处理系统可以识别从客户端设备接收到对第一内容元素的第一确认响应的第一时间。数据处理系统可以计算在发送第一内容元素到客户端设备的第一时间与接收到对第一内容元素的第一确认响应的第一时间之间经过的第一时间。数据处理系统可以识别发送第一内容元素到客户端设备的第二时间。数据处理系统可以识别从客户端设备接收到对第一内容元素的第二确认响应的第二时间。数据处理系统可以计算在发送第一内容元素到客户端设备的第二时间与从客户端设备接收到对第一内容元素的第二确认响应的第二时间之间经过的第二时间。在一些实施方式中,可以使用在多个客户端设备上发送第一内容元素和接收到确认响应的时间来计算经过的第一时间和经过的第二时间。数据处理系统可以计算经过的第一时间和经过的第二时间之间的差值。数据处理系统可以将差值与预定阈值进行比较。如果数据处理系统确定差值大于或等于预定阈值,则数据处理系统可以确定出现了对信息资源上的第一内容元素的渲染的干扰。如果数据处理系统确定差值小于预定阈值,则数据处理系统可以确定没有出现对信息上的第一内容元素的渲染的干扰。
在一些实施方式中,数据处理系统可以将接收到对第一内容元素的请求的预期时间与接收到对第一内容元素的请求的实际时间进行比较,以确定对第一内容元素的渲染的干扰。在客户端设备上运行的呈现限制器可能已经更改了内容元素或其上的信息资源的行为。因此,可以使得客户端设备在比没有呈现限制器的情况更晚的时间处接收信息资源之后发送对第一内容元素的请求。考虑到行为的更改,数据处理系统可以访问数据库以识别从客户端设备接收到对用于将第一内容元素插入到信息资源上的内容的请求的实际时间。数据处理系统还可以识别在发送信息资源到客户端设备与从客户端设备接收到对内容的请求之间经过的实际时间。数据处理系统可以使用任意数量的因素确定或计算从客户端设备接收到对与内容元素相关联的内容的请求的预期时间。这些因素可以包括网络的网络带宽、网络的网络等待时间、客户端设备的设备类型以及客户端设备的设备配置参数等。数据处理系统还可以确定或计算在发送信息资源到客户端设备与从客户端设备接收到对内容的请求之间经过的预期时间。数据处理系统可以比较接收到对内容的请求的预期时间和实际时间。在一些实施方式中,数据处理系统可以计算接收到对内容的请求的预期时间与实际时间之间的差值。如果数据处理系统确定差值大于或等于预定阈值,则数据处理系统可以确定出现了对信息资源上的第一内容元素的渲染的干扰。如果数据处理系统确定差值小于预定阈值,则数据处理系统可以确定没有出现对信息上的第一内容元素的渲染的干扰。
在一些实施方式中,数据处理系统可以将接收到对第一内容元素的确认响应的预期时间与接收到对第一内容元素的确认响应的实际时间进行比较,以确定对第一内容元素的渲染的干扰。在客户端设备上运行的呈现限制器可能已经更改了内容元素或其上的信息资源的行为。因此,可以使得客户端设备在比没有呈现限制器的情况更晚的时间处接收内容元素之后发送对第一内容元素的确认响应。考虑到行为的更改,数据处理系统可以访问数据库以识别从客户端设备接收到对第一内容元素的确认响应的实际时间。数据处理系统还可以识别在发送信息资源到客户端设备与从客户端设备接收到确认响应之间经过的实际时间。数据处理系统可以使用任何数量的因素来确定或计算从客户端设备接收到确认响应的预期时间。这些因素可以包括网络的网络带宽、网络的网络等待时间、客户端设备的设备类型以及客户端设备的设备配置参数等。数据处理系统还可以确定或计算在发送信息资源到客户端设备和从客户端设备接收到确认响应之间经过的预期时间。数据处理系统可以比较接收到对第一内容元素的确认响应的预期时间和实际时间。在一些实施方式中,数据处理系统可以计算接收到对第一内容元素的确认响应的预期时间与实际时间之间的差值。如果数据处理系统确定差值大于或等于预定阈值,则数据处理系统可以确定出现了对信息资源上的第一内容元素的渲染的干扰。如果数据处理系统确定差值小于预定阈值,则数据处理系统可以确定没有出现对信息上的第一内容元素的渲染的干扰。
在一些实施方式中,数据处理系统可以识别相对于来自客户端设备的子集的第一内容元素的行为差异,以确定对信息资源上的第一内容元素的干扰。客户端设备的第一子集可以运行呈现限制器或者可能以其他方式在处理信息资源及其上的内容元素时受呈现限制器影响。另一方面,客户端设备的第二子集可以不在其上运行呈现限制器。如此以来,客户端设备的第一子集在处理和分析内容元素时可以消耗与客户端设备的第二子集不同的时间量。考虑到行为的差异,对于每个客户端设备,数据处理系统可以识别发送第一内容元素的时间、接收到对内容的请求的时间、以及接收到确认响应的时间。使用所识别的值作为参数,数据处理系统可以应用聚类算法(例如,k-最近邻居算法、期望最大化等)来识别客户端设备的子集。对于每个子集,数据处理系统可以计算发送第一内容元素的时间、接收到对内容的请求的时间和接收到确认响应的时间的平均值。数据处理系统可以计算使用聚类算法识别的客户端设备的子集上的平均值的差值。数据处理系统可以将差值与预定余量进行比较。如果数据处理系统确定差值大于或等于预定余量,则数据处理系统可以确定出现了对信息资源上的第一内容元素的渲染的干扰。如果数据处理系统确定差值小于预定余量,则数据处理系统可以确定没有出现对信息上的第一内容元素的渲染的干扰。
响应于确定对信息资源上的第一内容元素的渲染的干扰,数据处理系统可以基于第一内容元素生成用于后续信息资源的第二内容元素(框815)。第二内容元素可以具有与第一比特流不同的第二比特流。响应于检测到对信息资源上的第一内容元素的渲染的干扰,数据处理系统可以基于第一内容元素生成用于后续信息资源的第二内容元素。第二内容元素可以对应于与第一比特流不同的第二比特流。当呈现限制器计算比特流的散列值以生成每个内容元素的元素标识符时,与第一比特流不同的第二比特流可以使得呈现限制器重新运行基于渲染的限制策略(例如,使用图像处理算法)来分析第二内容元素。重复应用基于渲染的限制策略来确定是否将内容限制策略应用于具有不同比特流的各种内容元素可能降低运行呈现限制器的设备的性能。为此,数据处理系统可以修改第一内容元素以根据内容修改策略使用任何数量的技术和技术的任何组合来生成具有与第一比特流不同的第二比特流的第二元素。
由数据处理系统生成的第二内容元素可以视觉上看起来与第一内容元素有差异,但是传达相同的信息(例如,具有不同背景颜色的相同文本或具有不同边界宽度的相同图像),这导致从第一比特流到第二比特流的改变。在一些实施方式中,数据处理系统可以修改第一内容元素的视觉特性(例如,字体、字体大小、背景颜色、边界宽度、尺寸、信息资源上的位置等)以生成第二内容元素。对视觉特性的修改可能导致从第一比特流到第二比特流的改变。数据处理系统可以识别来自数据库的第一内容元素的视觉特性。数据处理系统可以根据内容修改策略将第一内容元素的视觉特性设置为与默认值不同的值。内容修改策略可以基于默认值指定要设置视觉特性的哪些值(例如,将背景颜色从浅绿色改变为浅蓝色)。
由数据处理系统生成的第二内容元素可以在视觉上看起来与第一内容元素类似,传达相同的信息但具有不同的功能行为,以引起从第一比特流到第二比特流的改变。在一些实施方式中,数据处理系统可以修改第一内容元素的文件路径名以生成第二内容元素。文件路径名可以对应于第一内容元素的源地址。文件路径名可以包括协议(例如,http、https、ftp等)、主机名(例如,www.example.com)和文件名(例如,/samplescontent.html)。数据处理系统可以从文件路径名中识别协议、主机名和文件名。在一些实施方式中,数据处理系统可以修改主机名和文件名之一以生成第二内容元素。数据处理系统可以用修改后的文件路径名再现或重新生成第一内容元素以创建第二内容元素。在一些实施方式中,数据处理系统可以修改第一内容元素的重定向链接以生成第二内容元素。重定向链接可以包括第一内容元素中包括的源地址,并且可以被配置为使得在客户端设备上运行的应用160检索与源地址相对应的内容。数据处理系统可以识别第一内容元素的重定向链接。数据处理系统可以用修改后的重定向链接再现或重新生成第一内容元素以创建第二内容元素。
由数据处理系统生成的第二内容元素可以对应于与第一内容元素的代码或标记不同的代码或标记,这导致从第一比特流到第二比特流的改变。数据处理系统可以修改与第一内容元素或与第一内容元素相关联的信息资源相对应的代码段以生成第二内容元素。代码段可以包括与第一内容元素相关联的一个或多个脚本。数据处理系统可以用对第一内容元素的修改来再现或重新生成代码段以创建第二内容元素。
在一些实施方式中,数据处理系统可以识别来自第一内容元素的代码段的确认响应代码。数据处理系统可以修改来自第一内容元素的代码段的确认响应代码以生成第二内容元素。确认响应代码一旦被客户端设备接收并由在其上运行的应用160处理,就可以使得客户端设备向数据处理系统或内容提供方设备发送确认响应(例如,pingback)。
在一些实施方式中,数据处理系统可以识别来自信息资源的代码段的内容请求代码。数据处理系统可以修改来自信息资源的代码段的内容请求代码以生成第二内容元素。内容请求代码一旦被客户端设备接收并由在其上运行的应用160处理,就可以使得客户端设备向数据处理系统或内容提供方设备发送对内容的请求以将内容元素插入到信息资源中。
在一些实施方式中,数据处理系统可以将附属代码添加、插入或附加到用于第一内容元素的代码段中以生成第二内容元素。附属代码可以是非功能代码,其不改变或更改第二内容元素相对于第一内容元素的行为。附属代码可能导致从第一比特流到第二比特流的改变。
为了验证事实上比特流是否已经被更改,数据处理系统可以确定第二内容元素的第二比特流是否不同于第一内容元素的第一比特流。数据处理系统可以识别与第一内容元素相对应的第一比特流。数据处理系统可以识别与第二内容元素相对应的第二比特流。数据处理系统可以识别或确定第一比特流和第二比特流之间不同的比特数。数据处理系统可以将不同的比特数与阈值数量进行比较。如果数据处理系统确定不同的比特数大于或等于阈值数量,则数据处理系统可以许可将第二内容元素发送或提供给客户端设备。如果数据处理系统确定不同的比特数小于阈值数量,则数据处理系统可以限制将第二内容元素发送或提供给客户端设备。数据处理系统还可以重新运行对第一内容元素的修改以生成另一内容元素。
在一些实施方式中,数据处理系统可以识别在第一比特流和第二比特流之间不同的比特分布。数据处理系统可以将不同的比特分布与预定阈值进行比较。如果数据处理系统确定不同的比特分布大于或等于预定阈值,则数据处理系统可以许可将第二内容元素发送或提供给客户端设备。如果数据处理系统确定不同的比特分布小于预定阈值,则数据处理系统可以限制用于向客户端设备提供或发送第二内容元素。数据处理系统还可以重新运行对第一内容元素的修改以生成另一内容元素。
数据处理系统可以向客户端设备发送包括第二内容元素的后续信息资源(框820)。第二内容元素的接收可能使得在客户端设备上运行的内容限制脚本响应于与第一比特流不同的第二比特流而应用基于渲染的限制策略。在生成第二内容元素的情况下,数据处理系统可以将包括第二内容元素的后续信息资源发送到客户端设备。在一些实施方式中,数据处理系统可以从客户端设备接收对信息资源的请求。响应于接收到请求,数据处理系统可以发送后续信息资源。在一些实施方式中,数据处理系统可以从客户端设备接收对用于插入到信息资源中的内容的请求。响应于对内容的请求,数据处理系统可以向客户端设备发送包括在后续信息中的第二内容元素。在第二内容元素对应于与第一比特流不同的第二比特流的情况下,客户端设备对第二内容元素的接收可以使得在客户端设备上运行的呈现限制器应用基于渲染的限制策略。
现在参考图9,图9是描绘根据说明性实施方式的针对干扰信息资源的完整性的脚本的对策的方法900的流程图。本文针对方法900描述的功能可以由如图1中所示的系统100、如图6中所示的系统600、或如图10中所示的计算设备、或其任何组合来执行或以其他方式运行。简要概述,数据处理系统可以识别信息资源上的内容元素(框905)。数据处理系统可以确定是否接收到对内容的请求(框910)。如果接收到对内容的请求,则数据处理系统可以确定是否接收到对内容元素的确认响应(框915)。如果接收到确认响应,则数据处理系统可以识别发送内容元素到客户端设备的时间(框920)。数据处理系统可以识别来自客户端设备的对内容元素的第一确认响应的时间(框925)。数据处理系统可以确定第一确认响应的时间和发送时间之间的差值是否大于阈值(框930)。如果第一确认响应的时间与发送时间之间的差值小于阈值,则数据处理系统可以识别来自客户端设备的对内容元素的第二确认响应的时间(框935)。数据处理系统可以确定在第一确认响应时间和发送时间之间经过的时间是否比在第二响应时间和发送时间之间经过的时间大预定余量(框940)。如果在第一确认响应时间和发送时间之间经过的时间不比在第二响应时间和发送时间之间经过的时间大预定余量,则数据处理系统可以确定没有干扰(框945)。
否则,如果未接收到对内容的请求,未接收到对内容元素的确认响应,第一确认响应时间与发送时间之间的差值大于阈值,或者如果在第一确认响应时间和发送时间之间经过的时间比在第二响应时间和发送时间之间经过的时间大预定余量,则数据处理系统可以确定对内容元素的干扰的发生(框945)。数据处理系统可以检测干扰的发生(框950)。数据处理系统可以识别内容元素的属性(框955)。数据处理系统可以根据初始内容元素的所识别的属性生成新内容元素(框960)。数据处理系统可以响应于对内容的另一请求而发送新内容元素(框965)。
D.计算系统架构
图10示出了根据一些实施方式的可以被采用来实施本文讨论的计算机系统中的任何一个的示例性计算机系统1000的一般架构(包括数据处理系统110及其组件,诸如内容请求模块130、资源组装器模块135、干扰检测器605、内容修改器610、应用160及其模块、或呈现限制器165及其组件、资源解析器215、元素散列器220、内容限制器225和渲染限制器230)。计算机系统1000可以被用于经由网络105提供信息以用于显示。图10的计算机系统1000包括通信地耦合到存储器1025的一个或多个处理器1020、一个或多个通信接口1005、以及一个或多个输出设备1010(例如,一个或多个显示单元)和一个或多个输入设备1015。处理器1020可以被包括在数据处理系统110或系统110的其他组件中,诸如内容请求模块130、资源组装器模块135、干扰检测器605和内容修改器610。处理器可以被包括在客户端设备125、代理设备145、远程内容限制器设备155或它们的模块中,诸如应用160和呈现限制器165及其组件、资源解析器215、元素散列器220、内容限制器225和渲染限制器230。
在图10的计算机系统1000中,存储器1025可以包括任何计算机可读存储介质,并且可以存储计算机指令(诸如用于实施本文描述的对于各个系统的各种功能的处理器可运行指令),以及与其相关的、由此生成的或经由(多个)通信接口或(多个)输入设备(如果存在)接收的任何数据。再次参考图1的系统110,数据处理系统110可以包括存储器1025,其用于存储与一个或多个内容单元的库存的可用性、一个或多个内容单元的预留等有关的信息。存储器1025可以包括数据库140。图10中所示的(多个)处理器1020可以被用于运行存储在存储器1025中的指令,并且在这样做时,还可以从存储器读取或向存储器写入依据指令的运行处理和/或生成的各种信息。
图10中所示的计算机系统1000的处理器1020还可以通信地耦合到(多个)通信接口1005或用于控制(多个)通信接口1005依据指令的运行来发送或接收各种信息。例如,(多个)通信接口1005可以被耦合到有线或无线网络、总线或其他通信装置,并且因此可以允许计算机系统1000向其他设备(例如,其他计算机系统)发送信息或从其他设备接收信息。尽管未在图1或图6的系统中明确示出,但是一个或多个通信接口促进了系统1000的组件之间的信息流。在一些实施方式中,(多个)通信接口可以被配置为(例如,经由各种硬件组件或软件组件)提供网站,该网站作为计算机系统1000的至少一些方面的访问门户。通信接口1005的示例包括用户界面(例如,网页),用户可以通过该用户界面与数据处理系统1000通信。
图10中所示的计算机系统1000的输出设备1010可以被提供来例如允许结合指令的运行来查看或以其他方式感知各种信息。(多个)输入设备515可以被提供来例如允许用户在指令的运行期间进行手动调整、进行选择、输进数据、或以各种方式中的任何一种与处理器进行交互。本文进一步提供了与可以被用于本文讨论的各种系统的一般计算机系统架构有关的附加信息。
本说明书中描述的主题和操作的实施方式可以以数字电子电路来实施,或者以包括本说明书中公开的结构及其结构等同物的体现在有形介质、固件或硬件上的计算机软件来实施,或者以它们中的一个或多个的组合来实施。本说明书中描述的主题的实施方式可以被实施为编码在计算机存储介质上用于由数据处理装置运行或控制数据处理装置的操作的一个或多个计算机程序(即计算机程序指令的一个或多个模块)。程序指令可以被编码在人工生成的传播信号上,例如,机器生成的电、光或电磁信号,其被生成以编码信息以用于发送到合适的接收器装置以供数据处理装置运行。计算机存储介质可以是或被包括在计算机可读存储设备、计算机可读存储基板、随机或串行存取存储器阵列或设备、或者它们中的一个或多个的组合中。而且,虽然计算机存储介质不是传播信号,但是计算机存储介质可以包括在人工生成的传播信号中编码的计算机程序指令的源或目的地。计算机存储介质也可以是或被包括在一个或多个单独的物理组件或介质(例如,多个CD、磁盘或其他存储设备)中。
本文公开的特征可以在智能电视模块(或连网的电视模块、混合电视模块等)上实施,智能电视模块可以包括处理模块,该处理模块被配置为将互联网连接与(例如,经由电缆、卫星、空中传输或其他信号接收的)更多传统电视节目源集成。智能电视模块可以被物理地并入到电视机中,或者可以包括单独的设备,诸如机顶盒、蓝光(Blu-ray)或其他数字媒体播放器、游戏机、酒店电视系统或其他配套设备。智能电视模块可以被配置为允许观看者在网上、在本地有线TV频道上、在卫星TV频道上或者存储在本地硬盘驱动器上搜索和查找视频、电影、照片和其他内容。机顶盒(set-top box,STB)或机顶盒单元(set-top unit,STU)可以包括信息工具设备,该信息工具设备可以包含调谐器并连接到电视机和外部信号源,将信号调谐成然后显示在电视屏幕或其他显示设备的内容。智能电视模块可以被配置为提供主屏幕或顶级屏幕,其包括用于多个不同应用(诸如网页浏览器和多个流媒体服务、连接电缆或卫星媒体源、其他网络“频道”等)的图标。智能电视模块还可以被配置为向用户提供电子节目指南。智能电视模块的配套应用可以在移动计算设备上操作,以向用户提供关于可用节目的附加信息,允许用户控制智能电视模块等。在替代实施方式中,特征可以在膝上型计算机或其他个人计算机、智能电话、其他移动电话、手持式计算机、平板PC或其他计算设备上实施。
本说明书中描述的操作可以被实施为由数据处理装置对存储在一个或多个计算机可读存储设备上的数据或从其他源接收的数据执行的操作。
术语“数据处理装置”、“数据处理系统”、“用户设备”或“计算设备”涵盖用于处理数据的所有种类的装置、设备和机器,其包括例如可编程处理器、计算机、片上系统,或多个前述的可编程处理器、计算机、片上系统,或其组合。该装置可以包括专用逻辑电路,例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路)。除了硬件之外,该装置还可以包括为所讨论的计算机程序创建运行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、跨平台运行时环境、虚拟机或其中一个或多个的组合的代码。装置和运行环境可以实现各种不同的计算模型基础结构,诸如网络服务、分布式计算和网格计算基础结构。内容请求模块130、资源组装器模块135、干扰检测器605和内容修改器610可以包括或共享一个或多个数据处理装置、计算设备或处理器。应用160、呈现限制器165及其模块、资源解析器215、元素散列器220、内容限制器225和渲染限制器230可以包括或共享一个或多个数据处理装置、计算设备或处理器。
计算机程序(也称为程序、软件、软件应用、脚本或代码)可以用任何形式的编程语言(包括编译或解释语言、声明或过程语言)编写,并且它可以以任何形式(包括作为独立程序或作为模块、组件、子程序、对象或适于在计算环境中所使用的其他单元)部署。计算机程序可以但不必对应于文件系统中的文件。程序可以被存储在保存其他程序或数据(例如,存储在标记语言文档中的一个或多个脚本)的文件的一部分中,存储在专用于所讨论的程序的单一文件中,或存储在多个协调文件(例如,存储一个或多个模块、子程序、或代码的部分的文件)中。计算机程序可以被部署为在一个计算机上或者在位于一个站点上或分布在多个站点上并通过通信网络互连的多个计算机上运行。
本说明书中描述的过程和逻辑流程可以由运行一个或多个计算机程序的一个或多个可编程处理器执行,以通过对输入数据进行操作并生成输出来执行动作。过程和逻辑流程也可以由专用逻辑电路执行,并且装置也可以被实施为专用逻辑电路,例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路)。
例如,适合于计算机程序的运行的处理器包括通用和专用微处理器两者,以及任何种类的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于根据指令执行动作的处理器和用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括或可操作地耦合以从一个或多个大容量存储设备(例如,磁盘、磁光盘或光盘)接收数据或将数据传递到一个或多个大容量存储设备,或两者,以用于存储数据。然而,计算机不需要这样的设备。而且,例如,计算机可以被嵌入在另一设备中,例如,移动电话、个人数字助理(personal digitalassistant,PDA)、移动音频或视频播放器、游戏机、全球定位系统(Global PositioningSystem,GPS)接收器或便携式存储设备(例如,通用串行总线(universal serial bus,USB)闪存驱动器)。适用于存储计算机程序指令和数据的设备包括:所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器设备(例如,EPROM、EEPROM和闪速存储器设备);磁盘(例如,内部硬盘或可移动磁盘);磁光盘;以及CD-ROM和DVD-ROM盘。处理器和存储器可以由专用逻辑电路补充或并入专用逻辑电路中。
为了提供与用户的交互,本说明书中描述的主题的实施方式可以在具有显示设备的计算机上实施,例如,CRT(cathode ray tube,阴极射线管)、等离子体或LCD(liquidcrystal display,液晶显示器)监视器,以用于向用户显示信息,以及键盘以及定点设备(例如,鼠标或跟踪球),用户可以通过其向计算机提供输入。其他种类的设备也可以被用于提供与用户的交互。例如,提供给用户的反馈可以包括任何形式的感官反馈,例如,视觉反馈、听觉反馈或触觉反馈,并且可以以任何形式接收来自用户的输入(包括声学、语音或触觉输入)。另外,计算机可以通过向用户所使用的设备传送文档和从用户所使用的设备接收文档来与用户交互,例如,通过响应于从网页浏览器接收的请求将网页发送到用户的客户端设备上的网页浏览器。
本说明书中描述的主题的实施方式可以在包括后端组件(例如,作为数据服务器)、或者包括中间件组件(例如,应用服务器)、或者包括前端组件(例如,具有图形用户界面或网页浏览器的客户端计算机,用户可以通过其与本说明书中描述的主题的实施例进行交互)、或者包括一个或多个这样的后端、中间件或前端组件的任何组合的计算系统中实施。系统的组件可以通过任何形式或介质的数字数据通信(例如,通信网络)来互连。通信网络的示例包括局域网(“LAN”)和广域网(“WAN”)、互联网络(例如,互联网)和对等网络(例如,专设(ad hoc)对等网络)。
诸如系统1000或系统110的计算系统可以包括客户端和服务器。例如,数据处理系统110可以包括一个或多个数据中心或服务器群中的一个或多个服务器。客户端和服务器通常彼此远离,并且通常通过通信网络进行交互。客户端和服务器的关系借助在各自的计算机上运行并且具有彼此的客户端-服务器关系的计算机程序而产生。在一些实施方式中,服务器将数据(例如,HTML页面)发送到客户端设备(例如,用于向与客户端设备交互的用户显示数据和从其接收用户输入的目的)。可以从服务器处的客户端设备接收在客户端设备处生成的数据(例如,用户交互的结果)。
虽然本说明书包含许多具体实施方式细节,但这些不应被解释为对任何发明或对可以要求保护的范围的限制,而是作为特定于本文描述的系统和方法的特殊实施方式的特征的描述。单独的实施方式的背景下在本说明书中描述的某些特征也可以在单一实施方式中以组合实施。相反,在单一实施方式的背景下描述的各种特征也可以单独地或以任何合适的子组合在多个实施方式中实施。而且,尽管以上特征可以描述为以某些组合起作用并且甚至最初如此声明,但是在一些情况下来自所要求保护的组合的一个或多个特征可以从组合中除去,并且所要求保护的组合可以涉及子组合或子组合的变化。
类似地,虽然在附图中以特定顺序描绘了操作,但是这不应该被理解为要求以所示的特定顺序或按连续顺序执行这样的操作,或者执行所有示出的操作,以实现期望的结果。在一些情况下,权利要求中记载的动作可以以不同的顺序执行并且仍然实现期望的结果。另外,附图中描绘的过程不一定需要所示的特定顺序或连续顺序来实现期望的结果。
在某些情况下,多任务和并行处理可能是有利的。而且,以上描述的实施方式中的各种系统组件的分离不应被理解为在所有实施方式中都需要这种分离,并且应当理解的是,所描述的程序组件和系统通常可以在单一软件产品中集成在一起或者被封装到多个软件产品。内容请求模块130、资源组装器模块135、干扰检测器605和内容修改器610可以是数据处理系统110的一部分、单一模块、具有一个或多个处理模块的逻辑设备、一个或多个服务器、或搜索引擎的一部分。另外,应用160、和资源解析器215、元素散列器220、内容限制器225、以及呈现限制器165的渲染限制器230可以包括或可以是客户端设备125、代理设备145和远程内容限制器设备150的一部分、单一模块、或具有一个或多个处理模块的逻辑设备。资源解析器215、元素散列器220、内容限制器225和呈现限制器165的渲染限制器230可以包括或共享一个或多个数据处理装置、计算设备或处理器,并且是客户端设备125、代理设备145和远程内容限制器设备150的一部分、单一模块或具有一个或多个处理模块的逻辑设备。
现在已经描述了一些说明性的实施方式和实施方式,显而易见的是,已经通过示例的方式呈现的前述内容是说明性的而非限制性的。特别地,尽管本文呈现的许多示例涉及方法动作或系统元件的特定组合,但是那些动作和那些元件可以以其他方式组合以实现相同的目标。仅与一个实施方式相关地讨论的动作、元素和特征没有意图从其他实施方式或实施方式中的类似角色中排除。
本文使用的措辞和术语是出于描述的目的,而不应该被视为限制。“包括”、“包含”、“具有”、“含有”、“涉及”、“特征在于”、“在此表征”及其变型的使用,意味着涵盖其后列出的项目、其等同物和附加项目,以及组成其后列出的项目的替代实施方式。在一个实施方式中,本文描述的系统和方法包括所描述的元件、动作或组件中的一个、多于一个的每个组合、或所有。
以单数形式提及的对本文的系统和方法的实施方式或元件或动作的任何引用也可以包揽包括多个这些元素的实施方式,并且对于本文中的任何实施方式或元件或动作的以复数的任何引用也可以包揽仅包括单一元素的实施方式。单数或复数形式的引用并没有意图将当前公开的系统或方法、它们的组件、动作或元件限制为单一或复数的配置。对基于任何信息、动作或元素的任何动作或元素的引用可以包括其中动作或元素至少部分地基于任何信息、动作或元素的实施方式。
本文公开的任何实施方式可以与任何其他实施方式组合,并且对“实施方式”、“一些实施方式”、“替代实施方式”、“各种实施方式”、“一个实施方式”等的引用不一定是相互排除的并且意图指示结合实施方式描述的特殊特征、结构或特性可以被包括在至少一个实施方式中。本文使用的这些术语不一定都指的是相同的实施方式。任何实施方式可以以与本文公开的方面和实施方式一致的任何方式包含地或排他地与任何其他实施方式组合。
对“或”的引用可以被解释为包含性的,使得使用“或”描述的任何术语可以指示所描述的术语的单一、多于一个和所有中的任何一个。
附图中、详细描述或任何权利要求中的技术特征的后面附有参考标记的情况下,包括了参考标记仅为了增加附图、详细描述和权利要求的可理解性的目的。因此,参考标记及其缺失都不会对任何权利要求要素的范围产生任何限制作用。
在不脱离本文描述的系统和方法的特征的情况下,本文描述的系统和方法可以以其他特定形式来体现。尽管本文提供的示例涉及限制插入到信息资源中的内容并部署对其的对策,但是本文描述的系统和方法可以包括应用于其他环境。前述实施方式是说明性的而不是限制所描述的系统和方法。因此,本文描述的系统和方法的范围由所附权利要求而不是前述描述来指示,并且落入权利要求的等同物的含义和范围内的改变包揽在其中。

Claims (34)

1.一种限制插入到信息资源中的内容的方法,包括:
由具有一个或多个处理器的计算设备识别包括在信息资源中的内容元素,对所述内容元素应用内容限制策略以用于修改内容元素的呈现;
由所述计算设备识别与包括在所述信息资源中的内容元素相对应的比特流;
由所述计算设备对所识别的比特流进行散列,以生成与所述内容元素相对应的元素标识符;
由所述计算设备使用所述元素标识符访问受限内容数据库;以及
响应于在所述受限内容数据库中找到所述元素标识符,由所述计算设备根据所述内容限制策略修改所述信息资源上的内容元素的呈现。
2.如权利要求1所述的方法,其中,访问所述受限内容数据库还包括:
由所述计算设备使用所述元素标识符访问存储在所述计算设备上的本地受限内容数据库;以及
响应于未在所述本地受限内容数据库中找到所述元素标识符,由所述计算设备向远程设备发送对在与所述远程设备相关联的远程受限内容数据库上寻找所述元素标识符的请求,所述请求的接收触发所述远程设备使用所述元素标识符访问所述远程受限内容数据库;以及
由所述计算设备从所述远程设备接收指示所述元素标识符在与所述远程设备相关联的远程受限内容数据库上的响应。
3.如权利要求1或2所述的方法,其中,访问所述受限内容数据库还包括:
由所述计算设备使用所述元素标识符访问存储在所述计算设备上的本地受限内容数据库;
响应于未在所述本地受限内容数据库中找到所述元素标识符,由所述计算设备根据内容渲染限制扩展基于所述内容元素和所述信息资源的渲染属性来确定要修改所述内容元素;以及
响应于根据内容渲染限制扩展确定将所述内容限制策略应用于所述内容元素,由所述计算设备将所述元素标识符插入到所述本地受限内容数据库中。
4.如任一前述权利要求所述的方法,其中,访问所述受限内容数据库还包括:
由所述计算设备使用所述元素标识符访问存储在所述计算设备上的本地受限内容数据库;
响应于未在所述本地受限内容数据库中找到所述元素标识符,由所述计算设备向远程设备发送对在与所述远程设备相关联的远程受限内容数据库上寻找所述元素标识符的请求,所述请求的接收触发所述远程设备以:
使用所述元素标识符访问所述远程受限内容数据库,
响应于未在所述远程受限内容数据库中找到所述元素标识符,根据内容渲染限制扩展基于所述内容元素和所述信息资源的渲染属性来确定要修改所述内容元素,并且
响应于根据内容渲染限制扩展确定将所述内容限制策略应用于所述内容元素,将所述元素标识符插入到所述远程受限内容数据库中;以及由所述计算设备从所述远程设备接收指示所述元素标识符在与所述远程设备相关联的远程受限内容数据库上的响应。
5.如任一前述权利要求所述的方法,还包括:
由所述计算设备使用所述元素标识符访问存储在所述计算设备上的本地受限内容数据库;
响应于未在所述本地受限内容数据库中找到所述元素标识符,由所述计算设备向远程设备发送对与所述远程设备相关联的远程受限内容数据库的请求,所述请求的接收触发所述远程设备以:
根据内容渲染限制扩展基于所述内容元素和所述信息资源的渲染属性来确定要修改所述内容元素,并且
由所述计算设备从所述远程设备接收指示要修改所述内容元素的响应。
6.如权利要求5所述的方法,所述请求的接收还触发所述远程设备以:
生成与所述内容元素相对应的元素标识符;并且
响应于根据内容渲染限制扩展确定将所述内容限制策略应用于所述内容元素,将所述元素标识符插入到所述远程受限内容数据库中。
7.如任一前述权利要求所述的方法,还包括:
响应于未在所述受限内容数据库上找到所述元素标识符,在所述内容元素在所述信息资源上的第一包含期间,由所述计算设备将所述内容元素的属性设置为默认值;
在所述内容元素的第一包含之后,由所述计算设备根据内容渲染限制扩展基于所述内容元素和所述信息资源的渲染属性来确定要修改所述内容元素;以及
响应于根据内容渲染限制扩展确定将所述内容限制策略应用于所述内容元素,由所述计算设备将所述元素标识符插入到所述受限内容数据库中;并且
其中,禁用所述内容元素还包括:如由所述内容限制策略指定的,在第一包含之后的所述内容元素的第二包含期间,从所述信息资源或第二信息资源中的至少一个信息资源中删除所述内容元素。
8.如任一前述权利要求所述的方法,其中,禁用所述内容元素还包括:
由所述计算设备许可将所述内容元素的pingback发送到远程服务器;以及
在将所述内容元素的pingback发送到所述远程服务器之后,由所述计算设备从所述信息资源中删除所述内容元素。
9.如任一前述权利要求所述的方法,其中,修改所述内容元素的呈现还包括:如由所述内容限制策略指定的,将第二内容元素插入到位于所述信息资源上的所述内容元素上方。
10.如任一前述权利要求所述的方法,其中,修改所述内容元素的呈现还包括:如由所述内容限制策略指定的,从所述信息资源中移除所述内容元素。
11.如任一前述权利要求所述的方法,其中,修改所述内容元素的呈现还包括:如由所述内容限制策略指定的,将所述内容元素的可见性属性设置为空。
12.如任一前述权利要求所述的方法,其中,识别所述比特流还包括:由所述计算设备从表示所述内容元素的二进制序列的一部分中识别所述比特流,所述比特流对应于所述内容元素的一部分。
13.一种计算机系统,包括:
存储器,其存储处理器可读指令;
一个或多个处理器,所述一个或多个处理器被布置为读取和运行存储在所述存储器中的处理器可读指令;
其中,所述处理器可读指令包括被布置为控制所述计算机系统执行根据任一前述权利要求的方法的指令。
14.一种携带计算机程序的计算机可读介质,其包括计算机可读指令,所述计算机可读指令被配置为使得计算机执行根据权利要求1至12中的任一权利要求的方法。
15.一种限制插入到信息资源中的内容的方法,包括:
由具有一个或多个处理器的计算设备识别包括在信息资源中的内容元素,对所述内容元素应用内容限制策略以用于修改所述内容元素的呈现;
由所述计算设备识别与包括在所述信息资源中的内容元素相对应的比特流;
由所述计算设备对所识别的比特流进行散列,以生成与所述内容元素相对应的元素标识符;
由所述计算设备使用所述元素标识符访问受限内容数据库;以及
响应于在所述受限内容数据库中找到所述元素标识符,由所述计算设备根据所述内容限制策略修改所述信息资源上的内容元素的呈现。
16.如权利要求15所述的方法,其中,访问所述受限内容数据库还包括:
由所述计算设备使用所述元素标识符访问存储在所述计算设备上的本地受限内容数据库;以及
响应于未在所述本地受限内容数据库中找到所述元素标识符,由所述计算设备向远程设备发送对在与所述远程设备相关联的远程受限内容数据库上寻找元素标识符的请求,所述请求的接收触发所述远程设备使用所述元素标识符访问所述远程受限内容数据库;以及
由所述计算设备从所述远程设备接收指示所述元素标识符在与所述远程设备相关联的远程受限内容数据库上的响应。
17.如权利要求15所述的方法,其中,访问所述受限内容数据库还包括:
由所述计算设备使用所述元素标识符访问存储在所述计算设备上的本地受限内容数据库,所述本地受限内容数据库包括要被许可的元素标识符的第一列表和要被限制的元素标识符的第二列表;
响应于未在所述本地受限内容数据库中找到所述元素标识符,由所述计算设备根据内容渲染限制扩展基于所述内容元素和所述信息资源的渲染属性来确定要修改所述内容元素;
响应于根据内容渲染限制扩展确定将所述内容限制策略应用于所述内容元素,由所述计算设备将所述元素标识符插入到包括在所述本地受限内容数据库中的第二列表中;以及
响应于根据内容渲染限制扩展确定要修改所述内容元素,由所述计算设备将所述元素标识符发送到远程受限内容数据库以进行存储。
18.如权利要求15所述的方法,其中,访问所述受限内容数据库还包括:
由所述计算设备使用所述元素标识符访问存储在所述计算设备上的本地受限内容数据库;
响应于未在所述本地受限内容数据库中找到所述元素标识符,由所述计算设备向远程设备发送对在与所述远程设备相关联的远程受限内容数据库上寻找所述元素标识符的请求,所述请求的接收触发所述远程设备以:
使用所述元素标识符访问所述远程受限内容数据库,
响应于未在所述远程受限内容数据库中找到所述元素标识符,根据内容渲染限制扩展基于所述内容元素和所述信息资源的渲染属性来确定要修改所述内容元素,并且
响应于根据内容渲染限制扩展确定将所述内容限制策略应用于所述内容元素,将所述元素标识符插入到所述远程受限内容数据库中;以及由所述计算设备从所述远程设备接收指示所述元素标识符是在与所述远程设备相关联的远程受限内容数据库上的响应。
19.如权利要求15所述的方法,还包括:
响应于未在所述受限内容数据库上找到所述元素标识符,在所述内容元素在所述信息资源上的第一包含期间,由所述计算设备将所述内容元素的属性设置为默认值;
在所述内容元素的第一包含之后,由所述计算设备根据内容渲染限制扩展基于所述内容元素和所述信息资源的渲染属性来确定要修改所述内容元素;以及
响应于根据内容渲染限制扩展确定将所述内容限制策略应用于所述内容元素,由所述计算设备将所述元素标识符插入到所述受限内容数据库中;并且
其中,禁用所述内容元素还包括:如由所述内容限制策略指定的,在第一包含之后的所述内容元素的第二包含期间,从所述信息资源或第二信息资源中的至少一个信息资源中删除所述内容元素。
20.如权利要求15所述的方法,其中,禁用所述内容元素还包括:
由所述计算设备许可将所述内容元素的pingback发送到远程服务器;以及
在将所述内容元素的pingback发送到所述远程服务器之后,由所述计算设备从所述信息资源中删除所述内容元素。
21.如权利要求15所述的方法,其中,修改所述内容元素的呈现还包括:如由所述内容限制策略指定的,将第二内容元素插入到位于所述信息资源上的所述内容元素上方。
22.如权利要求15所述的方法,其中,修改所述内容元素的呈现还包括:如由所述内容限制策略指定的,从所述信息资源中移除所述内容元素。
23.如权利要求15所述的方法,其中,修改所述内容元素的呈现还包括:如由所述内容限制策略指定的,将所述内容元素的可见性属性设置为空。
24.如权利要求15所述的方法,其中,识别所述比特流还包括:由所述计算设备从表示所述内容元素的二进制序列的一部分中识别所述比特流,所述比特流对应于所述内容元素的一部分。
25.一种用于限制插入到信息资源中的内容的系统,包括:
在一个或多个处理器上运行的资源解析器,被配置为:
识别包括在信息资源中的内容元素,对所述内容元素应用内容限制策略以用于修改所述内容元素的呈现;并且
识别与包括在所述信息资源中的内容元素相对应的比特流;
在一个或多个处理器上运行的元素散列器,被配置为对所识别的比特流进行散列,以生成与所述内容元素相对应的元素标识符;以及
在一个或多个处理器上执行的内容限制器,被配置为:
使用所述元素标识符访问受限内容数据库;并且
响应于在所述受限内容数据库中找到所述元素标识符,根据所述内容限制策略修改所述信息资源上的内容元素的呈现。
26.如权利要求25所述的系统,其中,所述内容限制器还被配置为:
使用所述元素标识符访问存储在所述计算设备上的本地受限内容数据库;
响应于未在所述本地受限内容数据库中找到所述元素标识符,向远程设备发送对在与所述远程设备相关联的远程受限内容数据库上寻找元素标识符的请求,所述请求的接收触发所述远程设备使用所述元素标识符访问所述远程受限内容数据库;并且
从所述远程设备接收指示所述元素标识符在与所述远程设备相关联的远程受限内容数据库上的响应。
27.如权利要求25所述的系统,其中,所述内容限制器还被配置为:
使用所述元素标识符访问存储在所述计算设备上的本地受限内容数据库;
响应于未在所述本地受限内容数据库中找到所述元素标识符,根据内容渲染限制扩展基于所述内容元素和所述信息资源的渲染属性来确定要修改所述内容元素;
响应于根据内容渲染限制扩展确定要修改所述内容元素,将所述元素标识符插入到所述本地受限内容数据库中;并且
响应于根据内容渲染限制扩展确定要修改所述内容元素,将所述元素标识符发送到远程受限内容数据库以进行存储。
28.如权利要求25所述的系统,其中,所述内容限制器还被配置为:
使用所述元素标识符访问存储在所述计算设备上的本地受限内容数据库;
响应于未在所述本地受限内容数据库中找到所述元素标识符,向远程设备发送对在与所述远程设备相关联的远程受限内容数据库上寻找所述元素标识符的请求,所述请求的接收触发所述远程设备以:
使用所述元素标识符访问所述远程受限内容数据库,
响应于未在所述远程受限内容数据库中找到所述元素标识符,根据内容渲染限制扩展基于所述内容元素和所述信息资源的渲染属性来确定要修改所述内容元素,并且
响应于根据内容渲染限制扩展确定将内容限制策略应用于所述内容元素,将所述元素标识符插入到所述远程受限内容数据库中;并且从所述远程设备接收指示所述元素标识符在与所述远程设备相关联的远程受限内容数据库上的响应。
29.如权利要求25所述的系统,其中,所述内容限制器还被配置为:
响应于未在所述受限内容数据库上找到所述元素标识符,在所述内容元素在所述信息资源上的第一包含期间,将所述内容元素的属性设置为默认值;
在所述内容元素的第一包含之后,根据内容渲染限制扩展基于所述内容元素和所述信息资源的渲染属性来确定要修改所述内容元素;并且
如由所述内容限制策略指定的,在第一包含之后的所述内容元素的第二包含期间,从所述信息资源或第二信息资源中的至少一个信息资源中删除所述内容元素。
30.如权利要求25所述的系统,其中,所述内容限制器还被配置为:
允许将对所述内容元素的确认响应发送到远程服务器;并且
在将对所述内容元素的确认响应发送到所述远程服务器之后,从所述信息资源中删除所述内容元素。
31.如权利要求25所述的系统,其中,所述内容限制器还被配置为:如由所述内容限制策略指定的,将第二内容元素插入到位于所述信息资源上的所述内容元素上方。
32.如权利要求25所述的系统,其中,所述内容限制器还被配置为:如由所述内容限制策略指定的,从所述信息资源中移除所述内容元素。
33.如权利要求25所述的系统,其中,所述内容限制器还被配置为:如由所述内容限制策略指定的,将所述内容元素的可见性属性设置为空。
34.如权利要求25所述的系统,其中,所述资源解析器还被配置为从表示所述内容元素的二进制序列的一部分中识别与所述内容元素的一部分相对应的比特流。
CN202310159074.9A 2016-12-30 2017-01-24 对信息资源上的内容的基于散列的动态限制 Pending CN116244480A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201662440792P 2016-12-30 2016-12-30
US62/440,792 2016-12-30
PCT/US2017/014786 WO2018125266A1 (en) 2016-12-30 2017-01-24 Hash-based dynamic restriction of content on information resources
CN201780014528.6A CN108701158B (zh) 2016-12-30 2017-01-24 对信息资源上的内容的基于散列的动态限制

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201780014528.6A Division CN108701158B (zh) 2016-12-30 2017-01-24 对信息资源上的内容的基于散列的动态限制

Publications (1)

Publication Number Publication Date
CN116244480A true CN116244480A (zh) 2023-06-09

Family

ID=57966187

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201780014528.6A Active CN108701158B (zh) 2016-12-30 2017-01-24 对信息资源上的内容的基于散列的动态限制
CN202310159074.9A Pending CN116244480A (zh) 2016-12-30 2017-01-24 对信息资源上的内容的基于散列的动态限制

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201780014528.6A Active CN108701158B (zh) 2016-12-30 2017-01-24 对信息资源上的内容的基于散列的动态限制

Country Status (6)

Country Link
US (2) US11645368B2 (zh)
EP (1) EP3408762A1 (zh)
JP (1) JP6867482B2 (zh)
KR (1) KR102262480B1 (zh)
CN (2) CN108701158B (zh)
WO (1) WO2018125266A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10615966B2 (en) 2017-05-12 2020-04-07 International Business Machines Corporation Selective content security using visual hashing
CN114616578A (zh) * 2019-12-11 2022-06-10 谷歌有限责任公司 改进定向和其他设置的内容提供者建议
US11899617B2 (en) * 2020-12-14 2024-02-13 Verizon Patent And Licensing Inc. Systems and methods for dynamic content optimization at the network edge using shared customizable functions

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6457030B1 (en) 1999-01-29 2002-09-24 International Business Machines Corporation Systems, methods and computer program products for modifying web content for display via pervasive computing devices
US20020016910A1 (en) 2000-02-11 2002-02-07 Wright Robert P. Method for secure distribution of documents over electronic networks
US20030182420A1 (en) 2001-05-21 2003-09-25 Kent Jones Method, system and apparatus for monitoring and controlling internet site content access
US7650420B2 (en) * 2001-12-28 2010-01-19 The Directv Group, Inc. System and method for content filtering
US20050259819A1 (en) 2002-06-24 2005-11-24 Koninklijke Philips Electronics Method for generating hashes from a compressed multimedia content
US7673344B1 (en) * 2002-09-18 2010-03-02 Symantec Corporation Mechanism to search information content for preselected data
WO2004027653A2 (en) * 2002-09-18 2004-04-01 Vontu, Inc. Detection of preselected data
US8041719B2 (en) 2003-05-06 2011-10-18 Symantec Corporation Personal computing device-based mechanism to detect preselected data
JP4300292B2 (ja) 2003-10-03 2009-07-22 独立行政法人産業技術総合研究所 ピア・ツウ・ピアネットワークにおける分散情報共有・検索方法及びそのシステム
US7523112B2 (en) * 2004-02-19 2009-04-21 Research In Motion Limited System and method for searching a remote database
EP1840782B1 (en) 2004-04-02 2017-11-22 Panasonic Intellectual Property Management Co., Ltd. Unauthorized contents detection system
GB2422455A (en) * 2005-01-24 2006-07-26 Hewlett Packard Development Co Securing the privacy of sensitive information in a data-handling system
US20070201502A1 (en) 2006-02-28 2007-08-30 Maven Networks, Inc. Systems and methods for controlling the delivery behavior of downloaded content
CN101335762A (zh) * 2007-06-25 2008-12-31 株式会社日立制作所 反映网页的历史使用行为的方法,及服务器、终端和系统
US20090300671A1 (en) * 2008-05-30 2009-12-03 At&T Knowledge Ventures, L.P. Controlling Access to Multimedia Content
US9068837B2 (en) 2010-01-29 2015-06-30 Here Global B.V. Method of operating a navigation system
CN102340529B (zh) * 2010-07-21 2014-09-03 中国移动通信集团福建有限公司 一种基于wap平台的页面生成系统及页面生成方法
RU2571594C2 (ru) 2010-08-25 2015-12-20 Лукаут, Инк. Система и способ защиты от вредоносного программного обеспечения, связывающаяся с сервером
US20130013705A1 (en) * 2011-07-08 2013-01-10 Image Vision Labs, Inc. Image scene recognition
DE102012007217A1 (de) 2012-04-11 2013-10-17 Torsten Schmale IT-Verfahren für den sicheren Umgang mit Sensitiven Daten im Kontext des Cloud Computings
CN103913174B (zh) 2012-12-31 2016-10-19 深圳先进技术研究院 一种导航信息的生成方法和系统及移动客户端和服务器端
US8869281B2 (en) 2013-03-15 2014-10-21 Shape Security, Inc. Protecting against the introduction of alien content
US9473516B1 (en) 2014-09-29 2016-10-18 Amazon Technologies, Inc. Detecting network attacks based on a hash
US20170059347A1 (en) 2015-08-28 2017-03-02 Google Inc. Determining Improved Pick-Up Locations
US10126141B2 (en) 2016-05-02 2018-11-13 Google Llc Systems and methods for using real-time imagery in navigation
US10024683B2 (en) 2016-06-06 2018-07-17 Uber Technologies, Inc. User-specific landmarks for navigation systems
CN106403971B (zh) 2016-08-25 2021-10-08 北京小米移动软件有限公司 信息交互方法及装置
US10458802B2 (en) 2017-06-13 2019-10-29 Gt Gettaxi Limited System and method for navigating drivers to dynamically selected drop-off locations for shared rides
CN109040960A (zh) 2018-08-27 2018-12-18 优视科技新加坡有限公司 一种实现位置服务的方法和装置
CN109357673A (zh) 2018-10-30 2019-02-19 上海仝物云计算有限公司 基于图像的视觉导航方法和装置

Also Published As

Publication number Publication date
US20190130079A1 (en) 2019-05-02
US11797653B2 (en) 2023-10-24
JP2020504354A (ja) 2020-02-06
WO2018125266A1 (en) 2018-07-05
EP3408762A1 (en) 2018-12-05
US20210349976A1 (en) 2021-11-11
CN108701158A (zh) 2018-10-23
US11645368B2 (en) 2023-05-09
CN108701158B (zh) 2023-03-10
KR102262480B1 (ko) 2021-06-08
KR20190072619A (ko) 2019-06-25
JP6867482B2 (ja) 2021-04-28

Similar Documents

Publication Publication Date Title
US11907360B2 (en) Systems and methods for deploying countermeasures against unauthorized scripts interfering with the rendering of content elements on information resources
CN106095869B (zh) 广告信息处理方法、用户设备、后台服务器及系统
US11797653B2 (en) Hash-based dynamic restriction of content on information resources
KR102502616B1 (ko) 유사(Quasi)-개인화를 위한 저 엔트로피 브라우징 히스토리
US11886546B2 (en) Systems and methods for dynamically restricting the rendering of unauthorized content included in information resources
US8931084B1 (en) Methods and systems for scripting defense
US8904492B2 (en) Method of controlling information processing system, computer-readable recording medium storing program for controlling apparatus
CN109891421B (zh) 部署对信息资源上的内容元素的基于散列的动态限制的对策
US10554682B2 (en) Detecting and removing injected elements from content interfaces
CN117909603A (zh) 防止干扰在信息资源上渲染内容元素的系统和方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination