CN104584011A - 用于web内容和web服务的安全网络内插入的方法和系统 - Google Patents

用于web内容和web服务的安全网络内插入的方法和系统 Download PDF

Info

Publication number
CN104584011A
CN104584011A CN201380044936.8A CN201380044936A CN104584011A CN 104584011 A CN104584011 A CN 104584011A CN 201380044936 A CN201380044936 A CN 201380044936A CN 104584011 A CN104584011 A CN 104584011A
Authority
CN
China
Prior art keywords
webpage
data
response
request
script
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.)
Granted
Application number
CN201380044936.8A
Other languages
English (en)
Other versions
CN104584011B (zh
Inventor
G.措利斯
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.)
Citrix Systems Inc
Original Assignee
Citrix Systems Inc
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 Citrix Systems Inc filed Critical Citrix Systems Inc
Publication of CN104584011A publication Critical patent/CN104584011A/zh
Application granted granted Critical
Publication of CN104584011B publication Critical patent/CN104584011B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • 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/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • G06F16/972Access to data in other repository systems, e.g. legacy data or dynamic Web page generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0241Advertisements
    • G06Q30/0251Targeted advertisements
    • G06Q30/0269Targeted advertisements based on user profile or attribute
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0241Advertisements
    • G06Q30/0277Online advertisement

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • Accounting & Taxation (AREA)
  • Development Economics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Game Theory and Decision Science (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • General Business, Economics & Management (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

提供一种web内容和web服务插入的方法。所述方法包括:接收响应于请求数据而发送的响应数据,其中响应数据包括响应报头和第一网页。所述方法还包括:在确定了插入数据要与第一网页一起被包括之后,通过将插入数据添加到第一网页而更新响应数据。插入数据包括标识脚本的脚本元素,所述脚本包括在第一网页内显示第二网页的指令。所述方法还包括提供更新的响应数据。

Description

用于WEB内容和WEB服务的安全网络内插入的方法和系统
背景技术
万维网(“Web”)已经从通过超链接互连的静态文档的集合演变到使能在用户和内容提供商之间的无缝信息共享和协同的环境,其中域、web站点、应用和服务之间的界限是模糊的。许多应用正迁移到服务器基础设施(“云(Cloud)”),并且不再需要软件的本地安装或本地存储。尽管允许终端用户获得对Web应用和服务的访问的移动应用(“App”)的激增,Web浏览器(“浏览器(Browser)”)仍然是用于获得Web内容的目的的主要应用。
如今,由人们在其日常生活中采用的诸如台式、膝上式和上网本电脑、智能电话和功能电话、触摸屏平板设备和电子书阅读器、游戏控制台、高端车和电视之类的大多数电子设备配备有浏览器,其充当对互联网的进入点,不仅以有线方式,而且日益更多以无线方式如此。
互联网服务提供商(“ISP”)和移动网络运营商(“MNO”)一直在寻找区分他们自己并增强其订户的体验的方式。例如,ISP和MNO想要向他们的订户递送集成的云应用和服务、定制的消息和通知、广告和促销内容等等。
附图说明
图1图示示范性系统的框图。
图2是图示在图1的示范性系统中的示范性安全网络内web内容插入方案的实施例的框图。
图3A图示示范性的原始网页的实施例。
图3B图示示范性的修改的网页的实施例。
图4图示示范性的JavaScript脚本的实施例。
图5A、5B、5C和5D图示修改的网页内的插入的web内容的示范性可视配置的不同实施例。
图6图示示范性插入数据服务器及在其上托管的文件的实施例。
图7是表示web内容和web服务的安全网络内插入的示范性方法的流程图。
具体实施方式
现在将对示范性实施例详细地做出参考,在附图中图示其示例。只要可能,将遍及附图使用相同的参考标号来指代相同或相像的部分。
本文公开的示范性实施例目的在于用于web内容和web服务到由订户请求的原始网页中的安全网络内插入的方法和系统。插入方法对请求的网页的所有者是透明的,并且它对订户也是无缝的,因为它不需要安装附加软件或浏览器插件(外接附件(add-on))。插入方法可以顺从行业标准,诸如由互联网工程任务组(“IETF”)和万维网联盟(“W3C”)公布的行业标准。此外,插入方法保留原始网页和插入的web内容二者的安全性和完整性。
图1是示范性的系统的框图。除了其它事物以外,示范性的系统可以包括订户设备102、网关108、一个或多个内容服务器120、网络106和118以及互联网访问应用104。网关108可以耦合到网络106和网络118二者,网络118可以另外耦合到内容服务器120和插入数据服务器116,并且网络106可以另外耦合到订户设备102。订户设备102可以包括或耦合到互联网访问应用104。
订户设备102是具有联网能力的计算机程序或硬件设备。例如,订户设备102可以是台式、膝上式或上网本电脑、智能电话、功能电话、触摸屏平板设备、电子书阅读器、游戏控制台、高端车、电视等等。订户设备102可以从互联网访问应用104接收请求数据,将该数据传输到远程设备,响应于请求数据而接收响应数据,并将响应数据提供回到互联网访问应用104。可以通过诸如HTTP之类的任何合适的通信协议来传输请求数据和响应数据。订户设备102还可以包括显示器,所述显示器可以由互联网访问应用用来向订户(用户)呈现接收的响应数据。
互联网访问应用104是客户端应用,诸如浏览器、移动app或可以访问远程web内容并将该内容呈现给订户的任何其它软件和/或硬件应用。互联网访问应用104可以运行在订户设备102上或者在云上,也就是说,在例如通过网络106耦合到订户设备102的远程设备(未示出)上。互联网访问应用104可以从订户接收命令,向订户设备102传递对应于命令的请求数据,响应于请求数据而从订户设备102接收响应数据,并向订户呈现响应数据。
请求数据可以包括统一资源标识符(“URI”),其标识特定资源(例如网页、脚本或服务)和托管特定资源的远程服务器。除了其它事物以外,响应数据可以包括请求的特定资源。
网络106和118可以是任何类型的网络,包括但不限于适合于诸如互联网通信之类的联网通信的广域网(WAN)、局域网(LAN)或无线网络的任何组合。
网关108是可以拦截、分析和操纵在网络106和118之间交换的数据的一个或多个网络设备。网关108可以由ISP/MNO用来递送关于拦截的数据的各种服务,诸如web内容插入、应用检测、带宽节制、入侵/恶意软件检测、防火墙、网络地址转化和业务优化。此外,网关108可以充当用于“控制平面”接口的集成点,诸如认证、授权和计费(“AAA”)。网关108还能够可以访问ISP/MNO订户简档储存库(“SPR”),要么经由策略和收费规则框架(PCRF)基础设施,要么直接使用各种数据库或目录(例如LDAP)访问协议。
网关108可以具有一个或多个处理器和用于存储程序指令的至少一个存储器。(一个或多个)处理器可以是单个或多个微处理器、现场可编程门阵列(FPGA)或能够执行特定指令集的数字信号处理器(DSP)。计算机可读指令可以存储在有形的非暂时性计算机可读介质上,诸如软盘、硬盘、CD-ROM(致密盘-只读存储器)以及MO(磁-光)、DVD-ROM(数字通用盘-只读存储器)、DVD-RAM(数字通用盘-随机存取存储器)或半导体存储器。替代地,方法可以在硬件组件中或诸如例如ASIC、专用计算机或通用计算机之类的硬件和软件的组合中实现。
内容服务器120是可以托管诸如内容(例如网页)、脚本(例如JavaScript脚本)、服务(例如应用)等等之类的web资源的服务器。内容服务器120可以从订户设备102接收请求数据,处理请求数据,并将响应数据返回到订户设备102。内容服务器120可以是web服务器、企业服务器等。
插入数据服务器116是指明的服务器或服务器的负载平衡池,其可以存储插入数据。插入数据服务器116可以是远程服务器(例如内容服务器120之一),或者它可以被集成在网关108内。
图2是图示图1的示范性系统的实施例的框图。为了简单起见,从图2中省略插入数据服务器116以及网络106和118。在实施例中,网关108包括请求监视器202、响应监视器204、数据插入模块206、设备数据库208、策略规则210和订户简档212。
请求监视器202可以是软件程序和/或硬件设备,其从订户设备102接收或拦截请求数据,诸如对特定URI的HTTP请求。如果请求数据包括虚拟域(下面讨论),则请求监视器202可以用实域替换虚拟域。请求监视器202还可以从HTTP请求中提取报头信息,诸如标识订户设备或从其中发出请求的网页的来源的信息。请求监视器202可以将该信息传递到响应监视器204,要么直接地要么通过将其存储在对请求监视器202和响应监视器204二者可访问的存储器(未示出)中。最后,请求监视器将请求数据传输到内容服务器120。
响应监视器204可以是从内容服务器120和插入数据服务器116接收响应数据的软件程序或硬件设备。在接收响应数据之后,响应监视器204可以基于以下讨论的准则来确定附加数据是否应当被插入到响应数据中。如果是这样,则响应监视器204可以将响应数据发送到数据插入模块206,从数据插入模块206接收修改的响应数据,并将修改的响应数据传输到订户设备102。否则,响应监视器204可以将未改变的响应数据重新传输到订户设备102。
数据插入模块206可以是软件程序和/或硬件设备,其从响应监视器204接收响应数据,获取插入数据,通过将插入数据添加到响应数据而修改响应数据,并将修改的响应数据传输回到响应监视器204。
设备数据库208可以是软件程序和/或硬件设备,其存储关于各种订户设备102的信息。存储的信息例如可以包括特定订户设备102和/或其互联网访问应用104的技术能力。存储的信息还可以指示特定设备是否适合于数据插入,下面进一步描述。
策略规则210可以是在软件程序和/或硬件设备中实现的数据库,其存储关于在请求或响应时可以应用的策略行动(诸如下面描述的使能数据插入)的信息。策略规则210还可以存储关于伴随策略行动的条件的信息,诸如适合的订户设备102的列表或适合的网页URI的列表,以及用于应用这些行动所需的变元,诸如要插入的脚本资源的URI。
订户简档212可以是在软件程序和/或硬件设备中实现的数据库,其存储关于订户及其数据会话的信息,诸如唯一订户标识符(例如MSISDN或NAI)、当前指派给订户设备102的IP地址和接入点名称(APN)、订阅信息(例如数据计划)、个性化信息(例如订户偏好)等。
设备数据库208、策略规则210和订户简档212可以各自与响应监视器204通信,并且可以各自位于要么网关108内,要么在可以与网关108通信的远程服务器上。
在示例实施例中,订户正在使用互联网访问应用104并请求特定的网页,例如通过在地址栏中键入请求的网页或通过在另一网页处的超链接上点击。作为响应,互联网访问应用104发出HTTP请求,其包括请求的网页的URI。例如,URI可以具有以下格式:
http:// [web服务器地址]:[端口]/[网页名称]
[Web服务器地址]可以是托管请求的网页的内容服务器120的域名(例如“www.wikipedia.com”)或者IP地址(例如“208.80.154.225”)。[网页名称]指示在该内容服务器120上的特定网页的名称,例如“wiki/DNA”。有时,可以从URI中省略[网页名称],指示正在请求内容服务器120的默认网页。前缀“http://”标识要用来检索网页的通信协议,并且可以改变为任何其它合适的协议,诸如用于安全网页的“https://”。通信端口由[端口]指示,但是如果要使用用于给定协议的默认端口(例如用于HTTP的端口80),它也可以被省略。
请求监视器202从互联网访问应用104接收HTTP请求,可选地执行虚拟域名替换(以下讨论),可选地从HTTP请求提取报头信息,并且最后将HTTP请求转发到网络118。如果在HTTP请求中包含的URI是正确的,并且对应于现有内容服务器120上的现有网页,则响应监视器204从该内容服务器120接收包括请求的网页的HTTP响应。网页例如可以是超文本标记语言(“HTML”)文件。HTML是用来描述网页内容的标准语言。
响应监视器204可以分析接收的网页,并确定是否需要数据插入。在一些实施例中,为了确定是否需要数据插入,响应监视器204可以标识订户设备102,并通过使用设备数据库208来检查特定的设备或特定类型的设备是否适合于数据插入。例如可以通过从先前由请求监视器202接收的对应HTTP请求的报头信息获得用户-代理(User-Agent)字段而实现标识订户设备。在一些实施例中,对着URI的预定义列表来匹配网页URI,以确定是应当使能(如果URI在“白名单”中)还是禁用(如果URI在“黑名单”中)数据插入。在一些实施例中,确定还可以基于HTTP响应的内容类型。例如,响应监视器204可以决定只有包含HTML页面的HTTP响应可以承受数据插入。在一些实施例中,响应监视器204可以检查策略规则210,以确定对于特定订户、会话或事务是否允许数据插入。在一些实施例中,可以允许订户禁用数据插入,并且响应监视器204可以通过访问订户简档212而确定是否将其禁用。
在一些实施例中,在较早的阶段由请求监视器202完成关于是否执行数据插入的确定。因此,在从互联网访问应用104接收HTTP请求之后,请求监视器202可以通过使用上述数据库和方法决定是否要执行数据插入,并将其决定提供给响应监视器204。响应监视器204然后可以简单地通过查看由请求监视器202提供的决定而确定是否要执行数据插入。
如果确定了不需要任何数据插入,则响应监视器204向互联网访问应用104提供接收的网页。如果需要数据插入,则响应监视器204向数据插入模块206提供网页,从数据插入模块206接收修改的网页,并将修改的网页转发到互联网访问应用104。不管是否修改网页,互联网访问应用104接收网页,处理它,并将它显示给订户。
图3A图示由订户请求的示范性原始网页310。在实施例中,用HTML描述原始网页310。原始网页310可以包括报头区段(包含在标签<head>和</head>之间),其可以包括HTML元素,诸如网页标题、网页描述、脚本等。原始网页310还可以具有主体区段(包含在标签<body>和</body>之间),其可以包括HTML元素,诸如文本段落、图像、按钮、到其它网页的超链接等等。
在从响应监视器204接收原始网页310时,数据插入模块206可以将插入数据添加到原始网页310。可以将插入数据添加到报头区段、主体区段或文件中的任何其它位置中,优选顺从各种行业标准和/或互联网访问应用104的要求。
图3B图示作为将插入数据330插入到原始网页310中的结果所获得的示范性的修改的网页320。在一些实施例中,插入数据330可以包括一个或多个脚本元素,诸如远程脚本元素332或嵌入式脚本元素334。脚本可以是由互联网访问应用104并且优选由行业标准所支持的任何类型或语言。例如,插入数据330可以包括顺从ECMAScript(ECMA-262)的语支之一的脚本,诸如JavaScript、Jscript,或由互联网访问应用所支持的任何其它现有或未来的脚本语言,诸如VBScript等。添加插入数据330之后,数据插入模块206将修改的网页320传递到响应监视器204,其可以将修改的网页320提供给互联网访问应用104。
互联网访问应用104接收修改的网页320,并通过处理其中包含的HTML元素而将其显示给订户。虽然可以立即显示诸如标题、文本和按钮之类的一些HTML元素,但诸如图像之类的其它HTML元素可以包括到远程内容的URI(链接),其在可以被处理和显示之前必须被检索。为了检索远程内容,互联网访问应用104发出包含其URI的新的HTTP请求。
在修改的网页320的处理期间的某点处,互联网访问应用104开始处理插入数据330中包含的元素,例如包括嵌入式脚本元素334和远程脚本元素332。嵌入式脚本元素334包括可以立即由互联网访问应用104执行的脚本的实际内容(由[脚本内容]指示)。相比之下,远程脚本元素332不包括脚本内容;代替地,它包括标识包含脚本本身的资源(文件)的远程位置的URI(被指示为[脚本URI])。因此,在远程脚本元素332的情况下,互联网访问应用104首先通过发出对应HTTP请求而检索脚本文件,等待以从响应监视器204获得脚本文件,并且仅仅那时执行脚本。为了优化的目的,可以预处理(例如由ISP/MNO)脚本文件以最小化其文件大小。例如,可以从脚本文件中移除不必要的内容,诸如空白或注释。此外,可以插入(例如由响应监视器204)HTTP缓存指令,其将指示互联网访问应用104将脚本保持在缓存中达更长的时间段,预计对相同脚本的后续HTTP请求。
在一些实施例中,脚本在其执行时可以将附加内容和内容区域添加到修改的网页320。换句话说,脚本可以包括指示互联网访问应用104创建和显示新图形元素的命令。
在一些实施例中,脚本可以通过创建新的内联(inline)框架(“iframe”)元素并且例如将其添加到修改的网页320的<body>区段而添加新的内容区域。Iframe允许将来自另一网页的内容插入到现有网页内的矩形框架中。以HTML形式编写,iframe具有下列格式:
<iframe src=[插入的网页URI]>[备份内容]</iframe>
其中[插入的网页URI]指向将在iframe内加载和显示的远程网页,并且[备份内容]包括如果互联网访问应用不支持iframe则将显示的HTML内容。此外,可以定义网页内的iframe的尺寸和位置,如下面将示出的。
图4图示用于将包含远程内容的iframe插入到网页中的示范性JavaScript脚本410。JavaScript脚本410可以直接嵌入在嵌入式脚本元素334中,或者其可以被远程托管并且从远程脚本元素332引用,如上所讨论。当互联网访问应用104运行JavaScript脚本410时,其创建新的iframe 412,并将新的iframe添加到修改的网页320的<body>区段418。iframe的大小和位置还由脚本定义(如416所指明)。在指向远程网页(由[插入的网页URI]指示)的“src”属性414中定义要在iframe内显示的内容。结果,互联网访问应用104将经由另一HTTP请求而检索远程网页,并显示iframe内部的远程网页的内容,iframe被放置在所显示的修改的网页320内的预定义位置处。
在一些实施例中,JavaScript脚本410可以添加多于一个iframe,并且它还可以包括其它类型的HTML元素。
图5A、5B、5C和5D图示其中一个或多个iframe可以被添加到网页的各种示范性的配置。图5A图示示范性的页脚/报头配置,其中报头iframe 512和页脚iframe 514分别被添加在网页的原始内容510的上方和下方。添加的iframe可以被设置以保持在要么相对于网页边界(通过与网页的内容一起滚入和滚出屏幕)要么相对于屏幕边界(通过不滚入和滚出屏幕)的恒定位置中。
图5B图示示范性的叠覆配置,其中添加叠覆iframe 516,以便覆盖网页的原始内容510的一部分。可以设置叠覆iframe 516,以保持在要么相对于网页边界要么相对于屏幕边界的恒定位置中。此外,如果互联网访问应用104和/或订户设备102支持动态视口(即放大和缩小),则叠覆iframe 516可以将其大小调整到缩放水平或者保持大小恒定而不管缩放水平。在一些实施例中,可以添加多于一个叠覆iframe 516。在一些实施例中,叠覆iframe 516可以是半透明的,或者原始内容510可以变暗,以使得叠覆更加突出。
图5C图示示范性的侧边栏配置,其中左边栏iframe 518和右边栏iframe 520分别被添加到网页的原始内容510的左边和右边。添加的iframe可以被设置,以保持在要么对网页边界要么相对于屏幕边界的恒定位置中。
图5D图示示范性的内联(in-line)配置,其中与网页的原始内容510内联地添加一个或多个iframe 522。添加的iframe 522可以替换原始内容510的一些部分。例如,当网页承载不能由浏览器显示的富互联网应用(RIA)内容(例如Adobe Flash或Microsoft Silverlight)时,嵌入在网页的原始内容510中的这样的内容的一些或全部出现可以用iframe 522内联地替换,所述iframe 522包含由浏览器支持的并且可以显示的基于标准的内容。
托管脚本和iframe内容
在一些实施例中,插入数据具有两个或更多远程脚本元素332,并且在相同的远程服务器上托管(存储)对应于所有或者至少两个或更多远程脚本元素332的脚本文件。托管脚本文件的远程服务器可以是指明的服务器,诸如插入数据服务器116。作为示例,在插入数据服务器116上托管两个JavaScript文件:“header.js”和“footer.js”,并且插入数据服务器116的IP地址是1.2.3.4。除了其它事物以外,插入数据330于是可以包含下列远程脚本元素332:
<script src=”http://1.2.3.4/header.js”></script>
<script src=”http://1.2.3.4/footer.js”></script>
出于许多原因,在相同的服务器上托管脚本可以是有利的,许多原因之一与同源策略有关。同源策略是web安全性概念,其准许源自相同的服务器(托管在相同的服务器上)的文档或脚本访问彼此的方法和属性而没有任何具体的限制,但防止访问跨源自不同服务器的页面的大多数方法和属性。因此,在以上示例中的脚本header.js和footer.js将能够访问彼此的方法和属性,因为它们源自相同的服务器——插入数据服务器116。
在一些实施例中,由脚本(例如经由iframe)添加到网页的不同远程内容也源自相同的服务器。也就是说,如果包含若干远程网页的若干iframe被添加到当前网页,则根据一些实施例,可以在相同的服务器上托管若干远程网页。此外,在一些实施例中,在托管脚本本身的相同的服务器上托管远程内容。
根据以上讨论的示例,图6图示示范性的插入数据服务器116。在示例中,插入数据服务器116具有1.2.3.4的IP地址,并且托管至少两个脚本文件(header.js和footer.js)和至少两个网页(header.html和footer.html)。脚本header.js添加包含网页“header.html”的iframe,并且脚本footer.js添加包含网页“footer.html”的iframe。脚本在网页的顶部和底部放置iframe,其中通过相应地设置iframe的“顶部”属性而插入iframe(例如修改的网页320)。
在相同的服务器上托管由此插入的脚本和网页实现若干优点。例如,在这种情况下同源策略允许脚本彼此通信,允许插入的网页彼此通信(例如使用W3C HTML5 Web Messaging(消息传递)API),并允许每个脚本与每个插入的网页通信。同时,因为原始网页通常不被托管在与添加的脚本和插入的网页相同的服务器上,原始网页的观感或行为不能由添加的脚本或插入的网页所操纵,并且反之亦然。这给原始和插入的网页二者提供安全性和所有权保护。
为了附加的安全性,在一些实施例中,插入数据服务器116的真实地址(域名或者IP地址)不出现在修改的网页上。代替地,当引用在插入数据服务器116上托管的任何元素时,数据插入模块206可以使用预定义的虚拟(例如不存在的)域名。此外,如果由脚本插入的远程内容也托管在插入数据服务器116上,如图6中的示例中那样,脚本还可以通过使用虚拟域名来引用远程内容。例如,如果预定义的虚拟域名被选为“www.virtual-domain.com”,则远程脚本对象334随着它们出现在插入数据330中可以看上去像这样:
<script src=”http://www.virtual-domain.com/header.js”></script>
<script src=”http://www.virtual-domain.com/footer.js”></script>
并且脚本内的指令可以看上去分别像这样:
new_iframe.setAttribute("src",“http://www.virtual-domain.com/header.html”);
new_iframe.setAttribute("src",“http://www.virtual-domain.com/footer.html”);
可以由请求监视器202解析(替换)虚拟域名。请求监视器202接收和分析来自互联网访问应用104的请求数据,诸如HTTP请求。在一些实施例中,请求监视器202可以在请求数据内检测包括预定义的虚拟域名的请求。在检测到预定义的虚拟域名之后,通过用诸如插入数据服务器116之类的预定义的服务器的实域名或IP地址替换预定义的虚拟域名的任何出现,请求监视器202可以修改请求数据。网关108然后将修改的请求数据发送到网络118,网络118根据替换的域名来引导请求。虚拟域名的使用还提供以下灵活性:在不必改变脚本的URI的情况下将脚本重定位到不同的插入数据服务器或服务器池。
在一些实施例中,由数据插入模块206插入的远程内容(要么直接地要么经由脚本,如以上所讨论)可以包括Web 服务调用。Web 服务是允许在不同服务器上运行的应用彼此无缝通信的软件技术。例如,在订户设备102上由互联网访问应用104执行的网页可以使用Web 服务,以将数据发送到在远程服务器上运行的应用,并且可以从该应用接收数据。可以通过使用异步JavaScript和XML(“AJAX”)和通过使用XMLHTTPRequest(XMLHTTP请求)(“XHR”)对象来实现Web 服务调用。
在一些实施例中,从由脚本插入的iframe中所包括的远程网页发出XHR请求,其中远程网页托管在插入数据服务器116上。在一些实施例中,由于同源策略规则,对除插入数据服务器116以外的服务器的XHR请求不可以由互联网访问应用104允许。在一些实施例中,这可以通过拦截对这样的跨源XHR请求的HTTP响应和向HTTP响应添加报头来克服,所述报头明确地允许来自源自插入数据服务器116的网页的调用。
例如,请求监视器202可以标识源自插入的远程网页的HTTP请求,并且响应监视器204然后可以修改响应于所标识的HTTP请求而接收的HTTP响应的HTTP报头。为了标识源自插入的远程网页的HTTP请求,请求监视器202可以检查所有传入的HTTP请求的HTTP报头,并且例如标识具有简单请求方法(即OPTIONS(选项)、HEAD(头部)、GET(得到)或POST(告示))的所有请求,其报头包括字段“来源”,并且其“来源”字段对应于插入数据服务器116。
在标识了源自插入的网页的请求之后,请求监视器202例如可以指示响应监视器204拦截将响应于该请求而接收的HTTP响应。当HTTP响应由响应监视器204拦截时,响应监视器204可以修改HTTP响应,诸如以向互联网访问应用指示:应当允许从插入数据服务器116上托管的网页发出的XHR请求。这例如可以通过将下列W3C跨源资源共享(“CORS”)报头添加到HTTP响应而实现:
HTTP Request(请求):
OPTIONS|HEAD|GET|POST http://... HTTP/1.1
Origin(来源): http://[插入数据服务器116地址]:[端口]
Access-Control-Request-Method(访问-控制-请求-方法): ...
Access-Control-Request-Headers(访问-控制-请求-报头): ...
HTTP Response(响应):
HTTP/1.1 200 OK
Access-Control-Allow-Origin(访问-控制-允许-来源):
http://[插入数据服务器116地址]: [端口]
Access-Control-Allow-Methods(访问-控制-允许-方法): ...
Access-Control-Allow-Headers(访问-控制-允许-报头): ...
其中,[插入数据服务器116地址]可以是插入数据服务器116的IP地址或域名(实或虚拟的)。
图7是图示web内容和web服务的安全网络内插入的示范性方法的流程图。该方法可以由网关(例如网关108)执行。虽然流程图以特定次序公开下列步骤,但领会的是:适当的地方,可以移动、修改、合并或删除至少一些步骤。
方法从订户设备(例如订户设备102)接收(702)请求。然后方法可选地从请求提取(704)报头信息。报头信息例如可以包括关于订户设备的信息以及关于发起请求的网站的来源的信息。接下来,方法可选地解析(706)虚拟域名,通过检测请求是否包括预定义的虚拟域名并用实域名或IP地址替换请求中预定义的虚拟域名的每个出现。然后方法将请求传递(708)到例如网络,诸如网络118。
在步骤710处,方法接收对应于传递的请求的响应。响应例如可以包含报头(例如HTTP报头)和网页。然后方法确定(712)是否执行数据插入。该确定可以基于各种因素。例如,方法可以检查特定的设备或特定类型的设备是否适合于数据插入。例如可以通过从在704处提取的报头信息获得用户-代理字段而实现标识订户设备。确定还可以基于响应的内容类型。例如,只有响应是包含HTML网页的HTTP响应的情况下,方法才可以决定执行数据插入。通过访问一个或多个数据库(例如设备数据库208、策略规则210和订户简档212),方法还可以检查对于特定订户、会话或事务是否允许数据插入。如果方法决定(712)不需要数据插入,则其继续进行到步骤716。否则,方法继续进行到步骤714。
在步骤714处,方法将脚本数据插入到响应中所包括的网页中。脚本数据例如可以被添加到网页的<head>或<body>区段中。脚本可以托管在指明的服务器上(例如在插入数据服务器116上),并且脚本数据可以指示所指明的服务器的名称。在一些实施例中,代替于指示所指明服务器的真实名称,脚本数据可以指示虚拟域名。脚本在其执行时可以将新的内容和内容区域插入到网页中。新的内容区域例如可以是包括远程网页的iframe,其中例如可以在相同的所指明服务器上托管远程网页。在一些实施例中,远程网页可以包括Web 服务调用。
接下来,方法可以将报头数据插入(716)到响应的报头中。插入的报头数据可以允许来自插入的iframe中所包括的远程网页的跨源Web服务调用。最后,方法可以向订户设备(例如订户设备102)提供(718)响应。
本文公开的方法可以被实现为计算机程序产品,即在信息载体中(例如在机器可读存储设备中)有形地体现的计算机程序,以供由数据处理装置执行或控制数据处理装置的操作,所述数据处理装置例如可编程处理器、计算机或多个计算机。计算机程序可以用任何形式的编程语言编写,包括编译或解译的语言,并且可以以任何形式部署它,包括作为独立的程序或作为模块、组件、子例程或适合于在计算环境中使用的其它单元。可以部署计算机程序以在一个站点处的一个计算机上或多个计算机上执行,或者跨多个站点分布并通过通信网络互连。
本文公开的方法的一部分或全部还可以由专用集成电路(ASIC)、现场可编程门阵列(FPGA)、复杂可编程逻辑器件(CPLD)、印刷电路板(PCB)、数字信号处理器(DSP)、可编程逻辑组件和可编程互连的组合、单个中央处理单元(CPU)芯片、在母板上组合的CPU芯片、通用计算机或者能够执行本文公开的web内容和web服务的安全网络内插入的设备或模块的任何其它组合来实现。
在前面的说明书中,已经参考具体的示范性实施例描述了主题。然而,将明显的是:可以做出各种修改和改变而不脱离如在随后的权利要求中阐述的主题的更广泛的精神和范围。说明书和附图因此被视为说明性的而不是限制性的。考虑到本文公开的发明的说明书和实践,其它实施例对于本领域技术人员可以显而易见。
根据MICRO2-08号合同,导致本文公开的主题的开发的工作由Hellenic Funds(希腊基金)和由European Regional Development Fund(欧洲地区发展基金)(ERDF)在Hellenic National Strategic Reference Framework(希腊国家策略参考框架)(ESPA)2007-2013下共同资助的。

Claims (24)

1.一种web内容和web服务插入的方法,所述方法包括:
接收响应于请求数据而发送的响应数据,其中响应数据包括响应报头和第一网页;
在确定了插入数据要与第一网页一起被包括之后,通过将插入数据添加到第一网页而更新响应数据,所述插入数据包括标识脚本的脚本元素,所述脚本包括在第一网页内显示第二网页的指令;以及
提供更新的响应数据。
2.根据权利要求1所述的方法,其中在具有第一互联网地址的指明的服务器上托管脚本和第二网页。
3.根据权利要求2所述的方法,其中标识脚本包括指定第一互联网地址,并且显示第二网页的指令包括第一互联网地址。
4.根据权利要求2所述的方法,还包括接收请求数据,其中请求数据包括请求报头。
5.根据权利要求4所述的方法,其中插入数据要与第一网页一起被包括的确定至少基于请求报头。
6.根据权利要求4所述的方法,其中标识脚本包括指定第二互联网地址,并且显示第二网页的指令包括第二互联网地址,所述方法还包括:
通过用第一互联网地址替换请求数据内第二互联网地址的任何出现而更新请求数据;以及
提供更新的请求数据。
7.根据权利要求4所述的方法,其中第二网页包括一个或多个web服务调用,所述方法还包括:
将使能web服务调用的指令添加到响应报头。
8.根据权利要求1所述的方法,其中显示第二网页的指令包括:将与第二网页相关联的内联框架添加到第一网页的指令。
9.一种存储指令的非暂时性计算机可读介质,所述指令在由计算机执行时使得计算机执行web内容和web服务插入的方法,所述方法包括:
接收响应于请求数据而发送的响应数据,其中响应数据包括响应报头和第一网页;
在确定了插入数据要与第一网页一起被包括之后,通过将插入数据添加到第一网页而更新响应数据,插入数据包括标识脚本的脚本元素,所述脚本包括在第一网页内显示第二网页的指令;以及
提供更新的响应数据。
10.根据权利要求9所述的非暂时性计算机可读介质,其中在具有第一互联网地址的指明的服务器上托管脚本和第二网页。
11.根据权利要求10所述的非暂时性计算机可读介质,其中标识脚本包括指定第一互联网地址,并且显示第二网页的指令包括第一互联网地址。
12.根据权利要求10所述的非暂时性计算机可读介质,还包括接收请求数据,其中请求数据包括请求报头。
13.根据权利要求12所述的非暂时性计算机可读介质,其中插入数据要与第一网页一起被包括的确定至少基于请求报头。
14.根据权利要求12所述的非暂时性计算机可读介质,其中标识脚本包括指定第二互联网地址,并且显示第二网页的指令包括第二互联网地址,所述方法还包括:
通过用第一互联网地址替换请求数据内第二互联网地址的任何出现而更新请求数据;以及
提供更新的请求数据。
15.根据权利要求12所述的非暂时性计算机可读介质,其中第二网页包括一个或多个web服务调用,所述方法还包括:
将使能web服务调用的指令添加到响应报头。
16.根据权利要求9所述的非暂时性计算机可读介质,其中显示第二网页的指令包括:将与第二网页相关联的内联框架添加到第一网页的指令。
17.一种耦合到第一网络和第二网络的网关,所述网关包括响应监视器,所述响应监视器被配置成:
从第二网络接收响应于请求数据而发送的响应数据,其中响应数据包括响应报头和第一网页;
在确定了插入数据要与第一网页一起被包括之后,通过将插入数据添加到第一网页而更新响应数据,插入数据包括标识脚本的脚本元素,所述脚本包括在第一网页内显示第二网页的指令;以及
向第一网络提供更新的响应数据。
18.根据权利要求17所述的网关,其中在具有第一互联网地址的指明的服务器上托管脚本和第二网页。
19.根据权利要求18所述的网关,其中标识脚本包括指定第一互联网地址,并且显示第二网页的指令包括第一互联网地址。
20.根据权利要求18所述的网关,还包括:被配置成从第一网络接收请求数据的请求监视器,其中请求数据包括请求报头。
21.根据权利要求20所述的网关,其中插入数据要与第一网页一起被包括的确定至少基于请求报头。
22.根据权利要求20所述的网关,其中标识脚本包括指定第二互联网地址,并且显示第二网页的指令包括第二互联网地址,并且其中请求监视器还被配置成:
通过用第一互联网地址替换请求数据内第二互联网地址的任何出现而更新请求数据;以及
向第二网络提供更新的请求数据。
23.根据权利要求20所述的网关,其中第二网页包括一个或多个web服务调用,并且其中响应监视器还被配置成:将使能web服务调用的指令添加到响应报头。
24.根据权利要求17所述的网关,其中显示第二网页的指令包括:将与第二网页相关联的内联框架添加到第一网页的指令。
CN201380044936.8A 2012-06-28 2013-06-27 用于web内容和web服务的安全网络内插入的方法和系统 Active CN104584011B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/536285 2012-06-28
US13/536,285 US9471701B2 (en) 2012-06-28 2012-06-28 Methods and systems for secure in-network insertion of web content and web services
PCT/US2013/048366 WO2014004926A1 (en) 2012-06-28 2013-06-27 Methods and systems for secure in-network insertion of web content and web services

Publications (2)

Publication Number Publication Date
CN104584011A true CN104584011A (zh) 2015-04-29
CN104584011B CN104584011B (zh) 2018-09-18

Family

ID=49779590

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380044936.8A Active CN104584011B (zh) 2012-06-28 2013-06-27 用于web内容和web服务的安全网络内插入的方法和系统

Country Status (4)

Country Link
US (1) US9471701B2 (zh)
EP (1) EP2867795A4 (zh)
CN (1) CN104584011B (zh)
WO (1) WO2014004926A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106603728A (zh) * 2017-02-11 2017-04-26 网宿科技股份有限公司 Https加速方法和系统、数据中心、节点服务云端

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8095597B2 (en) 2001-05-01 2012-01-10 Aol Inc. Method and system of automating data capture from electronic correspondence
GB2505730B (en) * 2012-11-30 2014-10-15 Openwave Mobility Inc A method, apparatus and computer program for controlling access to content in a communications network
US10984668B2 (en) * 2013-05-30 2021-04-20 Srinivas Bharadwaj Collaborative learning platform for generating and presenting context-oriented content on an electronic device
US9503541B2 (en) * 2013-08-21 2016-11-22 International Business Machines Corporation Fast mobile web applications using cloud caching
RU2665240C2 (ru) * 2014-06-30 2018-08-28 Хуавей Текнолоджиз Ко., Лтд. Способ и устройство вставки страницы
CN104113544B (zh) * 2014-07-18 2017-10-31 重庆大学 基于模糊隐条件随机场模型的网络入侵检测方法及系统
CN105512559B (zh) * 2014-10-17 2019-09-17 阿里巴巴集团控股有限公司 一种用于提供访问页面的方法与设备
JP6350235B2 (ja) * 2014-11-18 2018-07-04 富士通株式会社 情報処理装置、情報処理装置制御方法及び情報処理装置制御プログラム
US20160343029A1 (en) * 2015-05-20 2016-11-24 Fortinet, Inc. Content presentation based on access point location
US9462323B1 (en) * 2015-08-28 2016-10-04 Streamray Inc. Method and system for display of mixed media content on devices without standard video
US10463076B2 (en) 2016-04-11 2019-11-05 Altria Client Services Llc Electronic vaping device
US11328074B1 (en) 2016-12-30 2022-05-10 Groupon, Inc. Server for verification, validation, and updating a data item database containing renderable data objects
US10733376B2 (en) * 2017-03-01 2020-08-04 Google Llc Delivering auto-play media content element from cross origin resources

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1892653A (zh) * 2005-06-30 2007-01-10 国际商业机器公司 无干扰小端口提交打印的方法与系统
WO2008075883A1 (en) * 2006-12-18 2008-06-26 Internet Channel21 Co., Ltd. Advertisement method by the proxy server and advertisement system operating the advertisement method
CN101472223A (zh) * 2007-12-29 2009-07-01 华为技术有限公司 一种广告植入的方法、系统和装置

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FI107423B (fi) 1998-05-28 2001-07-31 Ericsson Telefon Ab L M Mainoksia tietoverkossa
US6687252B1 (en) 2000-06-12 2004-02-03 Telefonaktiebolaget Lm Ericsson (Publ) Dynamic IP address allocation system and method
US20020128908A1 (en) 2000-09-15 2002-09-12 Levin Brian E. System for conducting user-specific promotional campaigns using multiple communications device platforms
US7136896B1 (en) * 2000-09-26 2006-11-14 Juniper Networks, Inc. Dynamic toolbar for markup language document
US7228493B2 (en) * 2001-03-09 2007-06-05 Lycos, Inc. Serving content to a client
AU2002303710A1 (en) 2001-05-11 2002-11-25 Wildseed, Ltd. Method and apparatus for associating a received command with a control for performing actions with a mobile telecommunication device
JP2004180272A (ja) 2002-08-21 2004-06-24 Nippon Telegr & Teleph Corp <Ntt> 情報提供装置及び情報提供方法並びに情報提供プログラム及び情報提供プログラムを記録した記録媒体
US8725792B1 (en) * 2002-11-27 2014-05-13 Sap Portals Israel Ltd. Rapid loading of multiple frames' content
US20040194130A1 (en) 2003-03-07 2004-09-30 Richard Konig Method and system for advertisement detection and subsitution
US7299050B2 (en) 2003-05-12 2007-11-20 Tekelec Methods and systems for generating, distributing, and screening commercial content
US7533144B2 (en) * 2004-05-14 2009-05-12 Hisham Kassab Method of providing a web page with additional content inserted in an intermediate network entity (INE) platform
US7461339B2 (en) 2004-10-21 2008-12-02 Trend Micro, Inc. Controlling hostile electronic mail content
US20060100928A1 (en) 2004-11-09 2006-05-11 Walczak Robert Jr System and method for providing content to a mobile communication device
US7636881B2 (en) 2005-06-30 2009-12-22 International Business Machines Corporation Displaying a portal with render-when-ready portlets
US7506248B2 (en) * 2005-10-14 2009-03-17 Ebay Inc. Asynchronously loading dynamically generated content across multiple internet domains
US20090030757A1 (en) 2005-12-19 2009-01-29 Uri Admon Content Distribution for Mobile Phones
US20070242814A1 (en) 2006-01-13 2007-10-18 Gober Michael E Mobile CLE media service with cross-platform bookmarking and custom playlists
GB0611435D0 (en) 2006-06-09 2006-07-19 Infinite Data Storage Ltd Place-shifting apparatus and system
WO2008056358A2 (en) 2006-11-10 2008-05-15 Media Layers Ltd Method and computer program product for providing advertisements to a mobile user device
US8185096B2 (en) 2007-02-05 2012-05-22 Boadin Technology, LLC Systems and methods for multi-modal mobile media services
US7937336B1 (en) 2007-06-29 2011-05-03 Amazon Technologies, Inc. Predicting geographic location associated with network address
WO2009073214A2 (en) 2007-12-04 2009-06-11 Bytemobile, Inc. Advertisement insertion module and advertisement replacement module
US8370737B2 (en) * 2008-12-27 2013-02-05 Flash Networks, Ltd Method and system for inserting data in a web page that is transmitted to a handheld device
US8271868B2 (en) * 2009-03-25 2012-09-18 Microsoft Corporation Inserting web content into a destination website
WO2011007357A2 (en) 2009-07-16 2011-01-20 Infogin Ltd. System and method for inserting web browser displayable content into existing web pages

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1892653A (zh) * 2005-06-30 2007-01-10 国际商业机器公司 无干扰小端口提交打印的方法与系统
WO2008075883A1 (en) * 2006-12-18 2008-06-26 Internet Channel21 Co., Ltd. Advertisement method by the proxy server and advertisement system operating the advertisement method
CN101472223A (zh) * 2007-12-29 2009-07-01 华为技术有限公司 一种广告植入的方法、系统和装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106603728A (zh) * 2017-02-11 2017-04-26 网宿科技股份有限公司 Https加速方法和系统、数据中心、节点服务云端
CN106603728B (zh) * 2017-02-11 2020-03-31 网宿科技股份有限公司 Https加速方法和系统、数据中心、节点服务云端

Also Published As

Publication number Publication date
US9471701B2 (en) 2016-10-18
EP2867795A1 (en) 2015-05-06
US20140006924A1 (en) 2014-01-02
CN104584011B (zh) 2018-09-18
WO2014004926A1 (en) 2014-01-03
EP2867795A4 (en) 2016-05-04

Similar Documents

Publication Publication Date Title
CN104584011A (zh) 用于web内容和web服务的安全网络内插入的方法和系统
US10977427B2 (en) Third party application communication API
US8396939B2 (en) Content distribution management device, terminal, program, and content distribution system
US9264435B2 (en) Apparatus and methods for access solutions to wireless and wired networks
US9697188B2 (en) Method to enable cross-origin resource sharing from a webpage inside a private network
US20150058407A1 (en) Systems, methods, and apparatuses for implementing the simultaneous display of multiple browser client cursors at each browser client common to a shared browsing session
US20190222662A1 (en) Methods and Systems for Rewriting Scripts to Redirect Web Requests
US20090164581A1 (en) System and method for synchronized co-browsing by users in different web sessions
US9083566B1 (en) System and method for communicating with an applet using an inline web frame in a network environment
US8555366B2 (en) Method of managing communication between an electronic token and a remote web server
US8966446B1 (en) Systems and methods of live experimentation on content provided by a web site
CN104541262A (zh) 用于富因特网应用的透明网络内适配的系统和方法
KR101638315B1 (ko) 와이파이 망을 이용한 웹기반 광고 제공 시스템 및 방법
CN103167031A (zh) Web应用之间的通信
CN105939313A (zh) 状态码重定向方法及装置
US20180048729A1 (en) Methods and Systems for Handling Requests Regarding Zero-Rating
WO2014007854A2 (en) Systems and methods for providing message-enabled advertisements and content delivery
US20140298443A1 (en) System and method of extending a host website
US10929884B2 (en) System and method for preventing a delivery of advertising contents
CN112818270A (zh) 数据跨域传递方法、装置及计算机设备
AU2019100103A4 (en) A system and method for delivering in-app content using mobile messaging
CN114385124A (zh) 基于Vue框架的独立页面的跳转方法、装置及设备
CN101854370A (zh) 一种实现终端访问服务器的方法、系统及设备
CN113472752B (zh) 一种权限处理方法、装置、电子设备及存储介质
US20230171295A1 (en) Internet (over the top) worldwide public chat capabilities matched to specified (&#34;URL&#34;) streaming content and non specified (&#34;prenamed &amp; hardcoded&#34;) streaming content rooms

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: BYTEMOBILE INC.

Free format text: FORMER OWNER: CITRIX SYSTEMS INC

Effective date: 20150811

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20150811

Address after: American Florida

Applicant after: Bytemobile Inc.

Address before: American Florida

Applicant before: Citrix Systems Inc

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20160223

Address after: American Florida

Applicant after: Citrix Systems Inc

Address before: American Florida

Applicant before: Bytemobile Inc.

GR01 Patent grant
GR01 Patent grant