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

文档序号:9457694阅读:来源:国知局
能力(例如,通过清除要保存在元 素/对象中的任何收集的分析数据的值)。例如,清除所收集数据的值包括修改/清除/移 走附加到URL名称值对。(参见图6,参考文献618)。本领域的技术人员在阅读了这里公开 的全文之后将理解,上述的实施例的至少一个或多个中的一个好处是PMS可以执行实时监 视以及阻止/允许信息(例如,网络分析)传输向特定域/URL。这种实时监控可以允许网 络分析分布的即时控制/调节的之后的分配,而不依赖于离线网页的事后审查。
[0060] PMS的其它报告的特征。除了提供CP0在线仪表板400,其它报告技术也可用于结 合PMS。例如,响应于试图在公司的网站上收集和/或发送分析数据的黑名单上的域,SMS 消息(或其它消息类型,例如,SMTP邮件消息、语音消息、即时通讯的聊天消息等等)可以产 生并且发送到CP0(或其它个人或计算系统)。在另一个实施方案中,特定类型的数据可以 被标记,因而当客户机侧的外部脚本试图调用涉及敏感私人用户数据的特定方法,接着实 时(或延迟)警告可以生成。例如,如果外部方的脚本试图调用读取智能电话设备(或浏 览器或用户的其它的唯一标识符)的唯一设备标识符(UDID)的方法,消息可以自动生成并 发送到CP0。另外,报告402可以生成并发送(例如,通过电子邮件)到CP0,定期(例如, 每周一次、每月一次、每天等)识别域名,该域名试图从公司的网站收集分析数据和分析数 据的类型。
[0061] 包装的技术方法禁止被覆盖。尽管本发明的JavaScript标准允许例如 "appendChild"的一些方法被覆盖,但所述语言禁止其它方法被覆盖。例如,使用图像元素 的"src"属性来设定"设置"函数,JavaScript当前不允许PMS的客户机-浏览器脚本代码 覆盖。得到授权的第三方供应商508A可包括在将"src"值改成未授权的第四方的域508C 的公司的网页上的JavaScript,且仅依赖于覆盖方法和离线审查的PMS可能不能捕捉隐私 策略违约。
[0062] 另外,在一些实例中,分析数据的传输可掩蔽成没有添加到网页的D0M的图像元 素。相反,图像元素可以通过分析提供器用于一个像素接一个像素的透明图像,用于收 集与网页访问者相关的数据的目的。例如,"src"属性可以设置为URL,带有参数名称值 对的添加的串(例如,www. hostname, com/thelmage. gif ? data = somcthing&data2 = someMoreData)。一旦" src "属性被设置,该浏览器可尝试定位和检索在URL处的图像位置。 在这样操作时,可以在远程服务器处获得分析数据作为这些名称值对。因此,覆盖方法用于 将该图像元素添加到网页或检查域,这不足以使PMS来监视和控制(例如,允许或阻止)分 析数据的流出。尽管本文已经描述了作为一个用于从计算装置收集和传送信息到远程服务 器的技术实例的图像元素,但所述公开预期其它元素/对象可以使用,且本文所述技术和/ 或系统可以类似地应用于那些其它。
[0063] 因此,在一些实施方案中,除了覆盖那些能够被覆盖的期望的方法,PMS可以包括 存储用来包装可用于HTML图像元素/对象的方法的脚本代码(例如,客户机-浏览器脚本 代码)的非暂时性计算机可读介质。本领域的普通技术人员在阅读了这里所公开的全文之 后将理解其它的方法/对象(例如,元素)可用这种方式"包装"(即,在本公开中指在各种 实施例中的覆盖),以克服在覆盖一些方法上的禁止(即,由于缺乏脚本语言的函数)。
[0064] 例如,HTML图像元素使用图像构造函数在JavaScript510B中创建。该构造函数 可以被覆盖。然而,除了覆盖该构造函数方法,PMS客户机-浏览器脚本代码510A包括按 规则的时间间隔触发(例如,50ms等)的计时器(或等效机构)来检查图像元素的属性值。 (参见图6,参考文献606)。具体地,"src"属性值可以被监视以确定Javascipt代码(或 其它代码)510B是否已经更改了属性值。(参见图6,参考文献608)。在另一个实施方案 中,假定运行该脚本代码的底层平台100提供函数,触发可以不基于重复的间隔(或者轮 询)模式,而是基于一旦检测到改变的属性值后自动地触发的"推"模式(参见图6,参考文 献606)。这样的模式可以类似于硬件中断请求(IPQs)模式如何操作,或者带有送话器-受 话器模式的基于事件的程序(例如,推-交互模式)如何工作。
[0065] 在上述实例中,属性值是否被改变的确定可通过PMS客户机-浏览器脚本代码比 较所检索的属性值与所存储的属性值做出(参见图6,参考文献608)。当调用原始图像构 造函数时,可以获得所存储的值。当已经确定属性值已改变,PMS客户机-浏览器脚本代码 可检查更新值和其它相关的信息来决定是否允许更新值(参见图6,参考文献612)。在一 个实例中,PMS脚本代码可保持相同的属性值。在其它实例中,PMS可以比较新值与白名单 406和/或黑名单408,以确定是否允许更新值(参见图6,参考文献612)。在又一示例中, "src"属性值可以改变到默认值(例如,对应于中性、透明图像的URL),而不是新值(参见 图6,参考文献616)。有效地,PMS可以有条件地保持原始图像参考与新图像同步,采用使用 覆盖图像构造函数的"包装"技术对象创建新的图像对象。(参见图6,参考文献如614和 618) 〇
[0066] 在根据本公开的一个实例中,JavaScript代码可实现实施的各个方面,该实例提 供有至少具有用于图像元素的伪代码的下列样品行。本领域的技术人员在阅读了这里公开 的全部内容将理解,本发明不限于仅仅HTML图像元素,并且可以在文档对象模型中(D0M) 应用于其它元素以及D0M外部的其它对象:
[0067] 行 0 ; (function (scope) {
[0068] 行 l:var ImageRef = scope. Image ;scope. Image = lunction(a. b) {
[0069] 行 2: var THIS = this,image,eventHandlers = ['AbortVErrorVKey DownVKeyPressV eyUpVload'], exclude = {children:〃, childNodes:〃, outerllTML:〃}, excludeMethods = {naturalHeight:〃,naturalWidth:〃};
[0070] 行 3:image_new ImageRef(a,b);
[0071] 行 4://code here to make the object that the PMS,s overridden constructor returns(i. e. ?,〃THIS〃)look exactly like the image object that the original implementation returns
[0072] 行5://code here to create empty functions on the PMS's image object for all the event handlers(e. g. , onLoad,etc.)listed in〃eventHandlers〃in 行 3so that these event handler methods can be monitored and controlled
[0073] 行 6: setlnterval (function () {
[0074] 行 7: for (p in THIS) {if ((THIS [p] ! = = image [p])&&(THIS [p] !== undefined) && ! (p in excludeMethods)) {try {if (p = = ='src'){
[0075] 行 8://code for monitoring and regulating the image element's src attribute
[0076] 行 9:} image [p] = THIS [p] ;THIS [p] = imagefp] ;? ? ?
[0077] 参见在该实例中的第0行,已经创建新的函数,将JavaScript的全局范围(即, "窗口 ")传递到该函数。在第1行中,原始图像构造函数函数存储在变量"ImageRef,"中, 接着用于图像元素的构造函数函数被覆盖(参见图6,参考文献602)。"a"和"b"输入参数 可以选择性地分别提供图像的宽度和高度。在第2行中,专用的"THIS"变量指示应该监视 哪些事件处理器,和在图像元素/对象上的哪些该方法可以被排除在外。
[0078] 参见该实例中样本代码的第3行,虽然ImageRefO方法用两个输入参数调用,条 件代码(例如,条件语句)可以包括在内以便任选调用使用一种输入参数或没有输入参数 的ImageRefO方法。此外,当少于两个可选的输入参数是所期望的,这种条件代码可以是 有用的。在第4行中,"for"循环可以用于将原始图像元素/对象所有的特性复制到包装 器创建的对象上(参见图6,参考文献604)。在第5行中,事件处理器安装在包装器中以便 监测。在第6行中,函数定义为将在规则的时间间隔重复执行(参见图6,参考文献606)。 在这种情况下,伪代码省略设置间隔0的终括号("}"),并且为每个间隔调用接受时间量 (例如,50ms)。
[0079] 在第7行中,代码检查这些PMS感兴趣的图像属性(参见图6,参考文献608)。具 体地,在第8行中,如果正在分析的属性是图像对象的"src"属性,则PMS可根据隐私法规 进行反应。例如,如上文关于appendChildO伪代码的实例的第2行,"src"属性的值可 以对照(例如,进行比较)白名单和/或黑名单,以及其它可能的动作/法规(参见图6, ref. 608)。如果PMS确定没有隐私侵犯会发生,则预定义对象的实际同步(例如,图像对象 514)和对应的覆盖对象(例如,包装器图像对象512)发生在第9行(参见图6,参考文献 612 和 614)。
[0080] 本领域的普通技术人员在阅读了这里公开的全文以后可以理解上面给出的伪代 码的行仅仅是代码的解释和/或通过代码所实现的函数。一个或多个代码的行可以在上述 呈现简化的实例中省略。
[0081] 识别第四方访问后面的第三方错误。参照上述关于监视图像元素的实例,第2行 还可以包括对logStackO函数(或可比函数)的调用来确定哪些特定的JavaScript代码 试图创建图像元素/对象或更新图像元素的"src"属性。这种信息可以允许CP0除了识 别被发出的数据是什么外,识别哪些第三方脚本负责被发送的数据。在一些实施方式中, logStackO函数通过产生一个"错误"类型对象并将数据从其剥离来运行。"错误"对象 可以包含堆栈跟踪,该堆栈跟踪包括关于创建或修改图像元素/对象的调用源自哪里的信 息。虽然该函数可以用在根据本公开的一些实施方式中,但是它可以被在一些实施方式中 省略,其中浏览器的特定限制可以阻止对"错误"对象的适当访问。在一些实例中,除了显 示其它信息外,PMS还可以在CP0仪表板上识别负责隐私策略侵犯的供应商。本公开还预 期以其它方式捕获堆栈跟踪(或可比日志)。例如,在logStack方法(或可比函数)中的 "arguments, caller"特性或"Function, caller"特性可以被检查,代替或者另外检查如上 所述的错误对象。
[0082] 隐私信息检测和处理。如上文公开的,本公开的方面涉及到防止或降低由不期望 的和/或未知的第三方和/或第三方捕获分析数据(例如,网页分析数据)的可能性。为 了这个目的,指导了由第三方和第四方使用以捕获分析数据的覆盖方法的技术。本公开还 指导了用于创建包装器对象以当第三方和/或第四方使用不可被覆盖的"setter"函数时 监视和/或阻止分析数据向第三方和/或第四方的传输。所描述的技术中的每一个可使用 白名单和/或黑名单以确定是否应该阻止尝试捕获分析数据的第三方或第四方这样做。在 该公开的另一方面,PMS可评估第三方和/或第四方正在尝试捕获的分析数据以确定该分 析数据是否包含隐私信息,而不是单独基于白名单和/或黑名单阻止分析数据被传输至第 三方或第四方。换言之,在一些实施方式中,PMS还可分析(或处理)分析数据以确定其内 容,并确定那些内容是否可能包含隐私信息。其中,隐私信息可包含个人信息,个人信息可 以是识别个人的任何信息。个人信息的实例可包含姓名(名、中间名、姓、昵称)、用户名、电 话号码、邮编、地址、年龄、种族等。隐私信息还可包含个人期望保持私密的任何其他信息, 例如,账号信息(例如,银行账号信息、信用卡账号信息等)、密码、安全问题和答案等。
[0083] PMS可以以各种方式实现对隐私信息的检测。每一个实现可包含用于从文档(或 者诸如D0M的对象模型)中的节点提取数据的方法。另外,这种方法可被分成两种类别的其 中一种,两种类别为:通过观察属性提取数据的方法和通过调用方法提取数据的方法-基 于其中数据(其可能潜在地包含隐私信息)被提取的方式。一些实施方式可实现来自这两 个类别的方法。来自两个类别的方法的描述如下。
[0084] 通过观察属性提取数据的方法。可由PMS的代码访问诸如D0M的对象模型的一个 或多个节点。PMS代码(例如,PMS的客户端-浏览器脚本代码510A)可包含由在工作站 201上运行的程序(例如,浏览器)执行的JavaScript代码的Ensighten的单一的一致行 (在申请序列号61/428, 560的美国临时申请中描述的)。在这种情况下,代码的单行可向 工作站201提供PMS的脚本代码,从而使得Ensighten的数据库506 (或者诸如网页所有者 的服务器504的另一个服务器)上的PMS的代码可与在工作站上加载的网页502的D0M的 节点进行交互并且对该节点进行评估。在其他情况下,PMS的代码可被完全存储在工作站 201本身上(例如,在RAM 105或ROM 107中),并被该工作站201的处理器(例如,处理器 103)执行。
[0085] 不管PMS代码被存储在哪里,一旦它访问D0M,则PMS代码可调用函数以检索D0M 中的节点中的任何节点。例如,PMS代码可使用getElementByld(id)函数以检索特定节点。 getElementByld(id)函数是用于检索来自D0M的元素的JavaScript的预定函数。D0M中 的每一个元素具有相关的标识符。通过在getElementByld(id)函数中将期望的标识符指 定为id参数,PMS代码可检索来自D0M的相关元素。PMS代码可创建变量并为变量分配该 函数的结果。例如,PMS代码可包含一下代码行以访问包含个人的姓(例如,如"John Doe" 中的"Doe")的文本节点并将其分配给名为"节点"的变量:
[0086] var node = document. getElementByld( "Last_Name_Text_Node");
[0087] 在该行代码中,"document"指的是PMS代码可以访问的D0M,其具有特定网页502 的节点。接下来,变量"node"的属性可被观察,以使用JavaScript的预定函数提取数据 (例如,值)。例如,".nodeValue"属性可被用于提取包含在"Last_Name_Text_Node. "内 的值。提取的值(例如,在Last_Name_Text_Node的情况下,其可能是文本)可被分配给另 一个变量,例如,变量在如以下的PMS代码中名为" data" :
[0088] var data = node. nodeValue ;
[0089] 作为PMS代码的这行的结果,在"Doe"(如"John Doe"中的)被包含在"Last_ Name_TeXt_N〇de"中的地方,变量"data"可被分配"Doe"。其后,如在下文中更详细地描述 的,PMS代码然后可以分析变量"data"以确定"Doe"是否包含隐私信息。
[0090] 尽管在上文中描述了 getElementByld(id)函数,但是在一些实施方式中可使 用另一个函数(例如,JavaScript 中的 getElementsByTagName(id)函数)。同样,PMS 代码可使用其他预定属性以从DOM的节点提取数据(例如,值)。例如,PMS代码可使用 "? innerHTML"、". outerHTML","? textContent"、". innerText" 等属性以从 D0M 的不同节 点提取各种数据。在一些实例中,即使仅仅属性的其中之一可以被分配给变量,也可观察相 同的节点的多个属性。例如,可使用如下的"OR"运算符(例如,"I I")来分配变量"data":
[0091] var data = node. innerText| |node. textContent ;
[0092] 不管所使用的浏览器(例如,Internet Explorer?、FirefoxTM、Safari?等),这种 类型的分配对于检查节点的属性可能是有用的。此处,PMS可被配置成阻止用于多种浏览 器的分析数据。因此,在一些情况下,PMS可使用如上文所述的"0R"运算符,而在其他情况 下,PMS可检测所使用的浏览器的类型并基于检测结果运行代码的特定模块。
[0093] 而且,可使用PMS期望如下评估的每一个属性来创建一个或多个阵列:
[0094] var properties = [ ^innerText% <outerText,, <innerHTML,, <outerHTML,];
[0095] 然后,PMS可穿过(traverse)阵列并执行特定函数以评估阵列中的每一个属性。 但是,在其他实施方式中,多个变量可被用于从相同的节
当前第3页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1