在线隐私管理的制作方法_4

文档序号:9457694阅读:来源:国知局
点的不同属性提取数据。例如,PMS 代码可包含如下代码:
[0096] var datal = node. nodeValue ;
[0097] var data2 = node. textContent ;
[0098] 第三方和第四方可尝试从节点的任何属性或所有属性捕获分析数据。由于可在相 同的节点的多种属性中找到隐私信息,所以期望的是评估每一个属性。在一些情况下,隐私 信息可被划分并存储在多个属性中,因此可以期望的是,PMS代码观察相同的节点的多个属 性,并一起评估数据以检测如下所述的隐私信息。因为PMS评估更多的属性,所以PMS可获 得更高等级的安全性。然而,评估更多属性可降低性能,并因此,PMS可被定制以仅仅评估 特定属性,特定属性被视为更可能包含隐私信息和/或更可能被第三方和第四方调查。
[0099] 通过调用方法提取数据的方法。在这个第二类别中的方法使用关于节点的方法以 提取保持在节点中的数据。初步地,合并来自该第二类别的过程的PMS代码可用与上文所 述的一样的方式例如使用"86丨£1611161^871(1(1(1)"获取节点并可将获取的节点分配给变量。 然而,该类别中的过程调用用于特定节点的方法,而不使用特定节点的属性以从该节点提 取值。例如,继续上述实例,替代使用nodeValue"属性,"substringDataC ?) "可被应用 于已经为其分配"Last_Name_Text_Node"的变量"node"上。特别地,可使用PMS代码的以 下行,实现用于通过调用方法提取数据的方法。
[0100] var node = document. getElementByld( "Last_Name_Text_Node");
[0101] var data = node. substringData(1, 10);
[0102] 作为该PMD代码的结果,在"Doe"(如"John Doe"中的)被包含在"Last_Name_ Text_Node"中的地方,substringData(l, 10)方法可返回"Doe",从而使得它可被分配给变 量 "data"。
[0103] 尽管在上文中再次描述了 getElementByld(id)函数,但是在一些实施方式中可 使用另一个函数(例如,JavaScript中的getElementsByTagName (id)函数),也实现用于 通过调用方法提取数据的方法。另外,PMS代码可利用JavaScript中的其他预定方法以从 D0M的节点提取值。例如,PMS代码可在节点上使用"getAttribute "方法以从该节点 提取值。
[0104] 用于检测和处理/阻止隐私信息的方法。图7A和7B包含示出了用于检测和处理 隐私信息的PMS的方法的流程图。作为执行页面(例如,网页)上的和来自PMS的机器可 执行指令的结果,可以由一个或多个处理器来执行图7A和7B的步骤。如上文所解释的,对 PMS的脚本代码的访问可通过Ensighten网关,其包含网页502中的单行代码。在步骤700 中,可访问网页502的对象模型(例如,D0M)。具体地,浏览器可解析网页以获取包含网页 502上的每一个节点的D0M。在步骤702处,可获取对象模型中的特定节点。可用多种方式 穿过D0M,从而使得在步骤702处以其获取节点的顺序可变化。在一些实施方式中,方法可 开始于在D0M的节点树顶端处获取节点。例如,在该方法的步骤702的第一实例中获取的 节点可以是D0M的节点树的根元素的子节点。而且,在一些实施方式中,步骤702可获取属 于超过另一个节点类型的一个节点类型的节点。例如,在步骤702中首次获取的节点可对 应于元素节点,而不是文本节点,其中期望的是首先评估元素节点。认识到第三方和第四方 可通常从特定节点捕获分析数据,步骤702可被配置成在获取其他的节点之前获取这种节 点。但是,在其他情况下,可随机选择在步骤702中首次获取的节点。
[0105] 在步骤702中获取节点之后,方法可继续进行至步骤704。在步骤704处,可定义 覆盖获取的节点的包装器对象。覆盖(或包装)获取的节点可包含覆盖获取的节点的构造 函数(constructor)方法。明显地,获取的节点可以是多种不同类型的节点中的任何一个。 例如,获取的节点可以是文本节点、元素节点、属性节点等。同样地,PMS代码可被配置成覆 盖任何类型节点的构造函数。特别地,PMS可包含函数,该函数被配置成为在步骤704处获 取的任何类型的节点创建通用包装器对象。例如,以下"GenericWrapper"函数可被使用。
[0106]
[0108] 该函数允许创建通用包装器对象而不是获取的节点。如上文所述的,诸如 JavaScript的一些语言不允许特定方法(例如,用于设置图像元素的'src'属性的设置函 数(setter function))被覆盖。通过创建通用包装器对象而不是在步骤702中获取的节 点,PMS能够避免这个限制。具体地,可替代获取的节点的通用包装器对象可配备有专门的 帮助函数(例如,设置函数、获得函数(getter function)、eventHandler函数等),帮助函 数允许PMS控制包装器对象的属性的值和由包装器对象的方法返回的值。换言之,因为PMS 不能改变节点的特定值,所以它使用其自己的独特函数(例如,"GenericWrapper"),独特 函数能够为任何类型的节点创建通用包装器对象以替换该节点。
[0109] 为了使PMS代码调用"GenericWrapper"函数以为任何类型的节点创建通用包装 器对象,"GenericWrapper"函数可使用专门设计的帮助函数。实例帮助函数包含以下:
[0110]
[0111]
[0112]
[01…」
[0114] 在定义包装器对象之后,步骤706可配置包装器对象以匹配获取的节点。即,包装 器对象可被配置,从而使它具有与从D0M获取的原始节点完全相同的属性和值(例如,文 本)。在步骤704中用于定义通用包装器对象的相同函数(例如,"GenericWrapper")可 包含用于配置通用包装器对象以匹配获取的节点的一个或多个帮助函数。当调用了用于定 义通用包装器对象(例如,"GenericWrapper")的函数时,对该函数的调用可包含用于通过 获取的节点的参数。因此,用于定义通用包装器对象的函数可接收它试图复制的节点的副 本。因此,用于定义通用包装器对象的函数可使用上文中讨论的用于提取数据的方法(例 如,通过观察节点的属性和调用节点上的方法)来从它接收的节点的副本提取数据。
[0115] 在步骤708中,PMS可检查以查看是将分析获取的节点的数据还是检查隐私信息。 即,步骤708可包含关于是否应配置将被创建代替获取的节点的包装器对象以分析数据的 PMS的确定。在一些实施方式中,步骤708中的确定可取决于在步骤702中获取的节点类型。 一些节点的数据可被分析,而其他节点的数据不可被分析。例如,PMS代码可以能够或者被 授权以分析关于元素节点(但不是文本节点)的数据。提供PMS的实体(例如,Ensighten) 可与其客户(例如,网页所有者和网站所有者)合作以确定应分析哪些节点以及不应分析 哪些节点。该合作可导致用于分析的节点名称清单。如果是这样,则步骤708可将获取的 节点的名称与在这种清单上的名称进行比较,以确定是否应该配置将被创建代替获取的节 点的包装器对象以分析数据。为了平衡期望的性能等级和期望的安全等级,PMS可被定制 成使用为隐私信息分析数据的包装器对象替代特定节点。
[0116] 而且,应理解,每次将创建节点的时候,应进行是否使用分析数据的包装器对象来 替换该节点的确定。即,每次用户尝试使用PMS代码查看网页时,PMS可以进行步骤708中 的确定。而且,确定的结果每一次可基于数据分析是被开启还是被关闭而不同。提供PMS 代码(例如,Ensighten)的实体或者网页所有者可定制PMS代码以开启/关闭数据分析。 例如,可通过与特定的网页或网站相关的被存储的设置来执行开启/关闭数据分析。如果 是这样,则检查以查看数据分析是开启还是关闭可包含检查这种设置。
[0117] 如果将不分析数据(在步骤708处为否),则PMS可继续进行到步骤710,以使用包 装器对象替换获取的节点,该包装器对象已经被创建以看起来完全像获取的节点。换言之, 获取的节点可与包装器对象同步,从而使得包装器对象变成D0M的部分。在一些情况下,步 骤710可能不替换获取的节点,因为包装器对象被配置成复制获取的节点。在任何事件中, 在步骤710之后,PMS可继续进行到步骤799,以确定是否已经获取了所有的节点。如果已 经获取了所有的节点,则PMS代码可停止获取节点并可结束执行。如果在D0M中具有PMS 代码尚未获取的其他节点,那么PMS可返回到步骤702并执行关于最近获取的节点的随后 的步骤。
[0118] 如果将分析数据(在步骤708处为是),则PMS可继续进行到步骤712。在步骤 712处,PMS可配置包装器对象以包含一个或多个定制的获得函数。获得函数是在节点上被 调用以从节点检索数据的函数。上文中公开的"createGetters"函数可被配置成建造一个 或多个定制的获得函数。通过使用具有定制的获得函数的包装器对象替换获取的节点,PMS 代码可控制由包装器对象返回什么数据。具体地,定制的获得函数可被配置成返回获取的 节点将返回的数据,只要该数据不包含隐私信息和/或未被用于分析数据。因此,定制的获 得函数可被配备有函数或对函数的调用,函数或对函数的调用可确定将替代获取的节点的 通用包装器对象的数据是否包含隐私信息。额外地或可选择地,定制的获得函数可配备有 函数或对函数的调用,函数或对函数的调用可评估堆栈跟踪以确定获得函数是否被调用以 返回分析数据。
[0119] 在步骤714中,PMS代码可使用D0M中的具有定制的获得函数的包装器对象来替 换获取的节点。换言之,在步骤714处,获取的节点可与包装器对象同步,从而使得包装器 对象变成D0M的部分。同样地,获取的节点及其原始函数(例如,原始获得函数)对于争取 收集分析数据的D0M中的其他节点来说可能不再是可访问的。反而,争取从获取的节点收 集数据的节点可尝试访问包装器对象的新获得函数,不像原始获取的节点,其可防止隐私 信息被捕获。
[0120] 在一些实施方式中,可使用JavaScript代码实现用于穿过D0M以获取节点、仓ij建 通用包装器对象并使用通用包装器对象替代获取的节点的上述步骤中的若干个。伪代码的 以下行示出了可如何使用JavaScript以执行以上描述的步骤中的一些。鉴于这些行和本 公开的全文,本领域的技术人员应理解可实现其他变体和方法。
[0121] 第 0 行;var elems = document. getElementsByTagName (*);
[0122] 第 1 行;for (var elem in elems) {
[0123] 第 2 行;var theNodeToWrap = document. getElementBylD( 'elem');
[0124] 第 3 行;var NewWrapperObject = new GenericWrapper (theNodeTo Wrap);
[0125] 第 4 行;document. replaceChild(theNodeToWrap, NewWrapperObject) ;}
[0126] 第0-2行可被用于实施上面所述的步骤700和702。在第0行中,可使用在DOM 上调用的方法(例如,getElementsByTagNameC ?))将D0M中的所有元素节点(例如, "document")放置在元素阵列(例如,"elems")中。通过在该方法中使用星号(例如, "*"),可识别D0M中的所有元素。
[0127] 在第1行中,"for loop"可被创建以对在第0行中识别的元素阵列中的每一个元 素起作用。因此,可为元素阵列中的每一个元素实施在第2-4行中的代码。
[0128] 在第2行中,来自元素阵列的特定元素被选为步骤702中获取的节点,其中将为该 获取的节点创建包装的对象。该选定元素被分配给名为"theNodeToWrap. "的变量。
[0129] 在第3行中,由作为参数被传递的"theNodeToWrap"进行对GenericWrapper 函数的调用。该行代码将由GenericWrapper函数返回的通用包装器对象存储为名为 "newWrapperObject. "的变量。而且,该行中的调用可以是上述步骤704中的实现并可发起 实施步骤706、708和712的过程。
[0130] 在第 4 行中,在 D0M 上调用 replaceChild(? ?)方法以使用 "newWrapperObject. " 替换"theNodeToWrap"。该代码可实现上文所述的步骤710或714,取决于GenericWrapper 函数是否已经使用分析数据的函数(例如,获得函数)创建了包装器对象。
[0131] -旦在步骤714处使用包装器对象替换了获取的节点,则可对该包装器对象的任 何函数进行调用。例如,其中已经放置了包装器对象的相同的D0M中的另一个节点可调用 包装器对象的获得函数。一些节点可由于合法的、非分析数据收集原因而调用新包装器对 象的获得函数。例如,一个节点可调用新包装器对象的获得函数以在网页502上显示新包 装器对象的值用于让用户查看。甚至在所显示的值是隐私信息的地方,该动作或事件可以 对于用户是可接受的,因为正是该用户在查看隐私信息并且隐私信息未被传输或被其他人 查看。然而,相比之下,一些第三方或第四方可在网页502上插入节点,网页502调用在该 相同的网页上的其他节点的获得函数以收集分析数据。步骤716示出实例,实例中,一些类 型的节点(由第三方或第四方收集分析数据的节点或不收集分析数据的节点)进行对新包 装器对象的获得函数的调用。
[0132] 在步骤718处,新包装器对象的获得函数可确定是否出于分析数据收集的目的将 其调用。如上所述的,新包装器对象的获得函数可包含一个或多个函数,一个和多个函数被 用于评估堆栈跟踪以确定调用获得函数以返回将作为分析数据被传输的数据的可能性。例 如,评估堆栈跟踪时,获得函数可确定将其调用的节点还调用了若干个其他获得函数,以及 作为结果,获得函数可推断它已被正在收集分析数据的节点调用。额外地或可选择地,获得 函数可评估将其调用的节点以查看该节点的URL是否出现在白名单和/或黑名单上,白名 单包含预先批准的URL的清单,黑名单包含未批准的或不赞成的URL的清单。
[0133] 不管怎样,如果所调用的获得函数确定未出于分析数据目的已经将其调用(在步 骤718处为否),那么获得函数可起它替换的原始节点的作用并返回在步骤720处所要求的 值。相比之下,如果获得函数确定出于分析数据的目的可以已经将其调用(在步骤718处 为是),那么步骤722可被实施。
[0134] 在步骤722中,PMS可实现用于通过观察如上所述的包装器对象的一个或多个属 性来从包装器对象提取数据的一个或多个方法。具体地,获得函数(和/或被获得函数调 用的一个或多个帮助函数)可提取其所属的相同的包装器对象的一个或多个属性并观察 哪些属性。如在上文中总体解释的,可通过使用以下行提取节点的属性以获取潜在的分析 数据:var data = node. nodeValue。当被使用在步骤722中时,"data"可以是包装器对象 的变量,以及"node"可以是已经被配置成匹配获取的节点的包装器对象本身。
[0135] 额外地或可选择地,PMS可实施步骤724。在步骤724处,PMS可实现用于通过在如 上所述的包装器对象上调用一个或多个方法来从包装器对象提取数据的一个或多个方法。 如在上文中总体解释的,诸如"substringData(..),"的方法可在节点上被调用以利用如下 行从节点提取数据:var data = node. substringData(l, 10)。当被使用在步骤724中时, "data"可以是包装器对象的变量,以及"node"可以是已经被配置成匹配获取的节点的包装 器对象本身。
[0136] 在步骤726处,一旦提取了数据,则PMS可执行模式识别软件以评估数据。模式识 别软件可包括被获得函数调用以评估提取的数据的一个或多个函数。可选择地,模式识别 软件可被存储在Ensighten数据库506、网页所有者的数据库504或另一个服务器508上。 而且,模式识别软件可被配置成寻找在提取的数据中的模式以识别隐私信息。特定类型的 隐私信息具有可表示包含了什么类型的信息的共同特性(或模式)。例如,因为已知电话号 常常被表示为七(7)个数字,如果所提取的数据具有七个数字,那么它可能是数据包含电 话号码的指示。模式识别软件可做出关于提取的数据是否是诸如电话号码的隐私信息的最 终确定。在不同实施方式中,可能要求不同程度的相似性。例如,扩展以上电话号码实例, 模式识别软件可能不将七个数字归类为电话号码,但如果前三个数字被字符(例如,句号 或者连字号)与后四个数字隔开,则可能将七个数字归类为电话号码,因为这是表示电话 号码的常见方式。尽管在本文中通过实例的方式使用了电话号码,但是其他类型的隐私信 息可具有共同特性,并且因此,可以是可使用模式识别软件来识别的。而且,识别一则隐私 信息可协助识别另一则隐私信息。例如,如果软件确定数据包含信用卡号,那么它可确定该 信用卡号邻近的三个其他数字对应于关于该信用卡的安全码。
[0137] 模式识别软件还可使用关于提取的数据的环境的信息。例如,PMS可确定获取的 节点来自对应于银行网站上的网页的DOM。PMS可将该信息反馈给模式识别软件,从而使得 模式识别软件可对识别在提取的数据中的银行账号特别灵敏。此外,模式识别软件可配置 用于在检测数据是否包含隐私信息之前对数据进行解密的多种解密算法,因为一些包装器 对象可用加密形式存储数据
当前第4页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1